List of usage examples for org.antlr.v4.runtime ANTLRInputStream ANTLRInputStream
public ANTLRInputStream(InputStream input, int initialSize) throws IOException
From source file:com.cisco.yangide.core.parser.YangParserUtil.java
License:Open Source License
public static YangContext parseYangSource(char[] content, final IYangValidationListener validationListener) { final ANTLRInputStream input = new ANTLRInputStream(content, content.length); final YangLexer lexer = new YangLexer(input); final CommonTokenStream tokens = new CommonTokenStream(lexer); final YangParser parser = new YangParser(tokens); parser.removeErrorListeners();/*from w ww . j a v a 2 s.com*/ if (validationListener != null) { parser.addErrorListener(new BaseErrorListener() { @Override public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line, int charPositionInLine, String msg, RecognitionException e) { int charStart = 0; int charEnd = 0; if (offendingSymbol != null && offendingSymbol instanceof Token) { charStart = ((Token) offendingSymbol).getStartIndex(); charEnd = ((Token) offendingSymbol).getStopIndex() + 1; } validationListener.syntaxError(msg, line, charStart, charEnd); } }); } return parser.yang(); }
From source file:com.cisco.yangide.core.parser.YangParserUtil.java
License:Open Source License
public static String formatYangSource(YangFormattingPreferences preferences, char[] content, int indentationLevel, String lineSeparator) { ANTLRInputStream input = new ANTLRInputStream(content, content.length); final YangLexer lexer = new YangLexer(input) { @Override// w w w .j a v a2s . c om public void skip() { // disable skipping of comment tokens } }; LexerErrorListener errorListener = new LexerErrorListener(); lexer.addErrorListener(errorListener); final BufferedTokenStream tokens = new BufferedTokenStream(lexer); final ITokenFormatter formatter = new YangTokenFormatter(preferences, indentationLevel, lineSeparator); while (tokens.LT(1).getType() != IntStream.EOF) { formatter.process(tokens.LT(1)); tokens.consume(); } if (errorListener.isErrorDetected()) { // Source that contains parsing errors should never be formatted return String.valueOf(content); } return formatter.getFormattedContent(); }
From source file:jetbrick.template.JetTemplate.java
License:Open Source License
private String generateJavaSource(Resource resource) { char[] source = resource.getSource(); ANTLRInputStream is = new ANTLRInputStream(source, source.length); is.name = resource.getAbsolutePath(); // set source file name, it will be displayed in error report. JetTemplateParser parser = new JetTemplateParser(new CommonTokenStream(new JetTemplateLexer(is))); parser.removeErrorListeners(); // remove ConsoleErrorListener parser.addErrorListener(new JetTemplateErrorListener()); parser.setErrorHandler(new JetTemplateErrorStrategy()); JetTemplateCodeVisitor visitor = new JetTemplateCodeVisitor(engine, engine.getVariableResolver(), parser, resource);//from w w w . j av a 2s . co m Code code = parser.template().accept(visitor); return code.getSource(); }
From source file:jetbrick.template.parser.AstBuilder.java
License:Open Source License
public static AstTemplate create(Source source, ParserContext ctx) { char[] contents = source.getContents(); ANTLRInputStream is = new ANTLRInputStream(contents, contents.length); is.name = source.getFilename(); // set source file name, it will be displayed in error report. JetTemplateLexer lexer = new JetTemplateLexer(is); lexer.removeErrorListeners(); // remove default ConsoleErrorListener lexer.addErrorListener(AstErrorListener.instance); JetTemplateParser parser = new JetTemplateParser(new CommonTokenStream(lexer)); parser.removeErrorListeners(); // remove default ConsoleErrorListener parser.addErrorListener(AstErrorListener.instance); parser.setErrorHandler(new AstErrorStrategy()); try {/*from w w w. j a v a2 s . c om*/ AstCodeVisitor visitor = new AstCodeVisitor(ctx); return visitor.visitTemplate(parser.template()); } catch (SyntaxException e) { // ??? throw e.set(source); } }
From source file:oracle.kv.impl.query.compiler.parser.KVParser.java
License:Open Source License
/** * Parse String input.//from w w w . ja v a2 s .co m */ public void parse(String input) throws QueryException { ANTLRInputStream antlrStream = new ANTLRInputStream(input.toCharArray(), input.length()); parse(antlrStream); }
From source file:org.diqube.diql.DiqlParseUtil.java
License:Open Source License
private static DiqlParser createParser(String diql) { // TODO #20 make ANTLR provide better error messages, show error if not the while diql was parsed (e.g. WHERE after // ORDER)./* w w w . j av a2s. c o m*/ ANTLRInputStream input = new ANTLRInputStream(diql.toCharArray(), diql.length()); DiqlLexer lexer = new DiqlLexer(input); lexer.addErrorListener(new BaseErrorListener() { @Override public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line, int charPositionInLine, String msg, RecognitionException e) { throw new ParseException("Syntax error (" + line + ":" + charPositionInLine + "): " + msg); } }); CommonTokenStream tokens = new CommonTokenStream(lexer); DiqlParser parser = new DiqlParser(tokens); parser.setBuildParseTree(true); parser.addErrorListener(new BaseErrorListener() { @Override public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line, int charPositionInLine, String msg, RecognitionException e) { throw new ParseException( "Syntax error while parsing (" + line + ":" + charPositionInLine + "): " + msg); } }); return parser; }
From source file:org.jruby.truffle.core.format.parser.PrintfCompiler.java
License:Open Source License
public CallTarget compile(ByteList format) { final PackErrorListener errorListener = new PackErrorListener(context, currentNode); final ANTLRInputStream input = new ANTLRInputStream(bytesToChars(format.bytes()), format.realSize()); final PrintfLexer lexer = new PrintfLexer(input); lexer.removeErrorListeners();//from www . java 2 s . c o m lexer.addErrorListener(errorListener); final CommonTokenStream tokens = new CommonTokenStream(lexer); final PrintfParser parser = new PrintfParser(tokens); final PrintfTreeBuilder builder = new PrintfTreeBuilder(context, format); parser.addParseListener(builder); parser.removeErrorListeners(); parser.addErrorListener(errorListener); parser.sequence(); return Truffle.getRuntime().createCallTarget(new PackRootNode(PackCompiler.describe(format.toString()), PackEncoding.DEFAULT, builder.getNode())); }
From source file:org.jruby.truffle.core.format.printf.PrintfCompiler.java
License:Open Source License
public CallTarget compile(String formatString, byte[] format) { final FormatErrorListener errorListener = new FormatErrorListener(context, currentNode); final ANTLRInputStream input = new ANTLRInputStream(bytesToChars(format), format.length); final PrintfLexer lexer = new PrintfLexer(input); lexer.removeErrorListeners();// ww w .j av a2 s . co m lexer.addErrorListener(errorListener); final CommonTokenStream tokens = new CommonTokenStream(lexer); final PrintfParser parser = new PrintfParser(tokens); final PrintfTreeBuilder builder = new PrintfTreeBuilder(context, format); parser.addParseListener(builder); parser.removeErrorListeners(); parser.addErrorListener(errorListener); parser.sequence(); return Truffle.getRuntime().createCallTarget(new FormatRootNode(DescriptionTruncater.trunate(formatString), FormatEncoding.DEFAULT, builder.getNode())); }