use of org.eclipse.ceylon.compiler.typechecker.parser.CeylonLexer in project ceylon by eclipse.
the class CeylonVersionTool method updateModuleVersion.
private boolean updateModuleVersion(Module module, Map<String, String> updatedModuleVersions) throws IOException, RecognitionException {
String moduleDescriptorPath = module.getUnit().getFullPath();
CeylonLexer lexer = new CeylonLexer(new ANTLRFileStream(moduleDescriptorPath, encoding));
TokenRewriteStream tokenStream = new TokenRewriteStream(lexer);
CeylonParser parser = new CeylonParser(tokenStream);
Tree.CompilationUnit cu = parser.compilationUnit();
fixModuleImportNames(cu);
String v = this.confirm == Confirm.dependencies ? this.newVersion : confirm("update.module.version", module.getNameAsString(), module.getVersion(), this.newVersion);
if (v == null) {
return false;
} else if (!v.isEmpty()) {
// record the new version for this module
updatedModuleVersions.put(module.getNameAsString(), v);
updateModuleVersion(moduleDescriptorPath, tokenStream, cu, v);
}
return true;
}
use of org.eclipse.ceylon.compiler.typechecker.parser.CeylonLexer in project ceylon by eclipse.
the class CeylonVersionTool method updateModuleImports.
private boolean updateModuleImports(Module module, Map<String, String> updatedModuleVersions) throws IOException, RecognitionException {
String moduleDescriptorPath = module.getUnit().getFullPath();
CeylonLexer lexer = new CeylonLexer(new ANTLRFileStream(moduleDescriptorPath, encoding));
TokenRewriteStream tokenStream = new TokenRewriteStream(lexer);
CeylonParser parser = new CeylonParser(tokenStream);
Tree.CompilationUnit cu = parser.compilationUnit();
fixModuleImportNames(cu);
List<Tree.ImportModule> moduleImports = findUpdatedImport(cu, updatedModuleVersions);
for (Tree.ImportModule moduleImport : moduleImports) {
String importedModuleName = moduleImport.getName();
String newVersion = updatedModuleVersions.get(importedModuleName);
if (newVersion == null)
newVersion = this.newVersion;
String v = confirm("update.dependency.version", importedModuleName, module.getNameAsString(), module.getVersion(), newVersion);
if (v == null) {
return false;
} else if (!v.isEmpty()) {
updateImportVersion(moduleDescriptorPath, tokenStream, moduleImport, v);
}
}
return true;
}
use of org.eclipse.ceylon.compiler.typechecker.parser.CeylonLexer in project ceylon by eclipse.
the class PhasedUnits method parseFile.
protected void parseFile(VirtualFile file, VirtualFile srcDir) throws Exception {
if (file.getName().endsWith(".ceylon") && (sourceFiles.isEmpty() || sourceFiles.contains(file))) {
// System.out.println("Parsing " + file.getName());
CeylonLexer lexer = new CeylonLexer(new ANTLRInputStream(file.getInputStream(), getEncoding()));
CommonTokenStream tokenStream = new CommonTokenStream(new CeylonInterpolatingLexer(lexer));
CeylonParser parser = new CeylonParser(tokenStream);
Tree.CompilationUnit cu = parser.compilationUnit();
PhasedUnit phasedUnit = new PhasedUnit(file, srcDir, cu, moduleSourceMapper.getCurrentPackage(), moduleManager, moduleSourceMapper, context, new ArrayList<Token>(tokenStream.getTokens()));
addPhasedUnit(file, phasedUnit);
List<LexError> lexerErrors = lexer.getErrors();
for (LexError le : lexerErrors) {
// System.out.println("Lexer error in " + file.getName() + ": " + le.getMessage());
cu.addLexError(le);
}
lexerErrors.clear();
List<ParseError> parserErrors = parser.getErrors();
for (ParseError pe : parserErrors) {
// System.out.println("Parser error in " + file.getName() + ": " + pe.getMessage());
cu.addParseError(pe);
}
parserErrors.clear();
}
}
use of org.eclipse.ceylon.compiler.typechecker.parser.CeylonLexer in project ceylon by eclipse.
the class CeylonInterpolatingLexer method createInterpolatedLexer.
private void createInterpolatedLexer(String text, int start, int end) {
String substring = text.substring(start + 2, end);
try {
interpolatedExpressionLexer = new CeylonLexer(new ANTLRReaderStream(new StringReader(substring)));
} catch (IOException e) {
interpolatedStringToken = null;
interpolatedExpressionLexer = null;
}
currentIndexInStringToken = end;
}
use of org.eclipse.ceylon.compiler.typechecker.parser.CeylonLexer in project ceylon by eclipse.
the class IssuesTests_1500_1999 method benchmarkParse.
private void benchmarkParse(String file) throws Exception {
String readSource = readFile(new File(getPackagePath(), file));
String source = readSource.toString();
char[] chars = source.toCharArray();
LineMap map = Position.makeLineMap(chars, chars.length, false);
System.err.println(map.hashCode());
ANTLRStringStream input = new ANTLRStringStream(source);
CeylonLexer lexer = new CeylonLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
CeylonParser parser = new CeylonParser(tokens);
// CompilationUnit cu = parser.compilationUnit();
// System.err.println(cu.hashCode());
}
Aggregations