java类org.antlr.v4.runtime.CommonTokenStream的实例源码

AntlrParser.java 文件源码 项目:rapidminer 阅读 26 收藏 0 点赞 0 评论 0
/**
 * Parses the expression using antlr, aborts the parsing on the first error.
 *
 * @param expression
 *            an expression, not {@code null}
 * @return a {@link ParseTree} for further processing
 * @throws ExpressionException
 */
ParseTree parseExpression(String expression) throws ExpressionException {
    if (expression == null) {
        throw new IllegalArgumentException("expression must not be null");
    }
    ANTLRInputStream in = new ANTLRInputStream(expression);
    FunctionExpressionLexer lexer = new CapitulatingFunctionExpressionLexer(in);
    CommonTokenStream tokens = new CommonTokenStream(lexer);
    FunctionExpressionParser parser = new FunctionExpressionParser(tokens);

    parser.removeErrorListeners();
    lexer.removeErrorListeners();
    ExpressionErrorListener listener = new ExpressionErrorListener();
    parser.addErrorListener(listener);
    lexer.addErrorListener(listener);
    parser.setErrorHandler(new CapitulatingErrorStrategy());

    try {
        ParseTree tree = parser.operationExp();
        if (listener.containsError()) {
            throw new ExpressionException(listener.getErrorMessage(), listener.getErrorLine());
        } else {
            return tree;
        }
    } catch (CapitulatingRuntimeException e) {
        if (listener.containsError()) {
            throw new ExpressionException(listener.getErrorMessage(), listener.getErrorLine());
        } else {
            // cannot happen since the parser and lexer always register the error before trying
            // to recover
            throw new ExpressionException("Unknown error");
        }
    }

}
BooleanExpANTLRHandler.java 文件源码 项目:BEAST 阅读 16 收藏 0 点赞 0 评论 0
/**
 * Constructor
 * @param styledDocument the StyledDocument instance to analyse
 */
public BooleanExpANTLRHandler(StyledDocument styledDocument) {
    try {
        this.styledDocument = styledDocument;
        lexer = new FormalPropertyDescriptionLexer(new ANTLRInputStream(
                styledDocument.getText(0, styledDocument.getLength())));
        CommonTokenStream ts = new CommonTokenStream(lexer);
        parser = new FormalPropertyDescriptionParser(ts);
    } catch (BadLocationException ex) {
        Logger.getLogger(BooleanExpANTLRHandler.class.getName()).log(Level.SEVERE, null, ex);
    }
}
BooleanExpANTLRHandler.java 文件源码 项目:BEAST 阅读 16 收藏 0 点赞 0 评论 0
/**
 * Method that parses the current input of a BooleanExpCodeArea and returns a
 * FormalPropertyDescriptionParser.BooleanExpListContext object which can then be used for building an AST
 * out of the input.
 * @return a BooleanExpListContext node from the ANTLR generated ParseTree.
 */
public FormalPropertyDescriptionParser.BooleanExpListContext getParseTree() {
    String text = null;
    try {
        text = styledDocument.getText(0, styledDocument.getLength());
    } catch (BadLocationException e) {
        e.printStackTrace();
    }
    lexer.setInputStream(new ANTLRInputStream(text));
    CommonTokenStream ts = new CommonTokenStream(lexer);
    parser.setTokenStream(ts);
    return parser.booleanExpList();
}
CAntlrHandler.java 文件源码 项目:BEAST 阅读 22 收藏 0 点赞 0 评论 0
/**
 * constructor
 * @param pane the pane to hold the handler
*/
public CAntlrHandler(JTextPane pane) {
    this.pane = pane;
    lexer = new CLexer(new ANTLRInputStream(pane.getText()));
    CommonTokenStream commonTokenStream = new CommonTokenStream(lexer);
    cParser = new CParser(commonTokenStream);
}
CAntlrHandler.java 文件源码 项目:BEAST 阅读 21 收藏 0 点赞 0 评论 0
/**
 * gives the parse tree
 * @return the parse tree
*/
public ParseTree getCParseTree() {
    try {
        String code = pane.getStyledDocument().getText(0, pane.getStyledDocument().getLength());
        lexer.setInputStream(new ANTLRInputStream(code));
        CommonTokenStream commonTokenStream = new CommonTokenStream(lexer);
        cParser.setTokenStream(commonTokenStream);
        return cParser.compilationUnit();
    } catch (BadLocationException ex) {
        Logger.getLogger(CAntlrHandler.class.getName()).log(Level.SEVERE, null, ex);
    }
    return null;
}
CAntlrHandler.java 文件源码 项目:BEAST 阅读 22 收藏 0 点赞 0 评论 0
/**
 * updates the parser
 */
public void updateParser() {
    try {
        String code = pane.getStyledDocument().getText(0, pane.getStyledDocument().getLength());
        lexer.setInputStream(new ANTLRInputStream(code));
        CommonTokenStream commonTokenStream = new CommonTokenStream(lexer);
        cParser.setTokenStream(commonTokenStream);
    } catch (BadLocationException ex) {
        Logger.getLogger(CAntlrHandler.class.getName()).log(Level.SEVERE, null, ex);
    }
}
FormalPropertySyntaxTreeToAstTranslaterTest.java 文件源码 项目:BEAST 阅读 15 收藏 0 点赞 0 评论 0
@Test
public void testCreateAST() {
   String exp = "FOR_ALL_VOTERS(v) : EXISTS_ONE_CANDIDATE(c) : VOTES1(v) == c && VOTES1(v) == c;";
   FormalPropertyDescriptionLexer lexer = new FormalPropertyDescriptionLexer(new ANTLRInputStream(exp));
   CommonTokenStream tokenS = new CommonTokenStream(lexer);
   FormalPropertyDescriptionParser parser = new FormalPropertyDescriptionParser(tokenS);
   FormalPropertySyntaxTreeToAstTranslator translater = new FormalPropertySyntaxTreeToAstTranslator();
}
ANTLRTest.java 文件源码 项目:BEAST 阅读 16 收藏 0 点赞 0 评论 0
static void showGuiTreeView(final String code) {
    final org.antlr.v4.runtime.CharStream stream = new ANTLRInputStream(code);
    final FormalPropertyDescriptionLexer lexer = new FormalPropertyDescriptionLexer(stream);
    final CommonTokenStream tokens = new CommonTokenStream(lexer);
    final FormalPropertyDescriptionParser parser = new FormalPropertyDescriptionParser(tokens);
    final ParseTree tree = parser.booleanExpList();
    final List<String> ruleNames = Arrays.asList(FormalPropertyDescriptionParser.ruleNames);
    final TreeViewer view = new TreeViewer(ruleNames, tree);
    view.open();
}
ANTLRTest.java 文件源码 项目:BEAST 阅读 16 收藏 0 点赞 0 评论 0
static void showGuiTreeView(final String code) {
    final org.antlr.v4.runtime.CharStream stream = new ANTLRInputStream(code);
    final CLexer lexer = new CLexer(stream);
    final CommonTokenStream tokens = new CommonTokenStream(lexer);
    final CParser parser = new CParser(tokens);
    final ParseTree tree = parser.declaration();
    final List<String> ruleNames = Arrays.asList(CParser.ruleNames);
    final TreeViewer view = new TreeViewer(ruleNames, tree);
    view.open();
}
Parser.java 文件源码 项目:travny 阅读 19 收藏 0 点赞 0 评论 0
private static TravnyParser.SchemaFileContext parseContext(String dsl) {
    CharStream cs = new ANTLRInputStream(dsl);
    TravnyLexer lexer = new TravnyLexer(cs);
    lexer.removeErrorListeners();
    lexer.addErrorListener(new BreakingErrorListener());
    CommonTokenStream tokens = new CommonTokenStream(lexer);
    TravnyParser parser = new TravnyParser(tokens);
    parser.removeErrorListeners();
    parser.addErrorListener(new BreakingErrorListener());

    TravnyParser.SchemaFileContext parsed = parser.schemaFile();


    return parsed;
}


问题


面经


文章

微信
公众号

扫码关注公众号