public ActionParser(Charset charset, LexerlessGrammarBuilder b, Class grammarClass, Object treeFactory, NodeBuilder nodeBuilder, GrammarRuleKey rootRule) { this.charset = charset; GrammarBuilderInterceptor grammarBuilderInterceptor = new GrammarBuilderInterceptor(b); Enhancer grammarEnhancer = new Enhancer(); grammarEnhancer.setSuperclass(grammarClass); grammarEnhancer.setCallback(grammarBuilderInterceptor); ActionMethodInterceptor actionMethodInterceptor = new ActionMethodInterceptor(grammarBuilderInterceptor); Enhancer actionEnhancer = new Enhancer(); actionEnhancer.setSuperclass(treeFactory.getClass()); actionEnhancer.setCallback(actionMethodInterceptor); Object grammar = grammarEnhancer.create( new Class[] {GrammarBuilder.class, treeFactory.getClass()}, new Object[] {grammarBuilderInterceptor, actionEnhancer.create()}); for (Method method : grammarClass.getMethods()) { if (method.getDeclaringClass().equals(Object.class)) { continue; } ReflectionUtils.invokeMethod(method, grammar); } this.syntaxTreeCreator = new SyntaxTreeCreator<>(treeFactory, grammarBuilderInterceptor, nodeBuilder); b.setRootRule(rootRule); this.rootRule = rootRule; this.parseRunner = new ParseRunner(b.build().getRootRule()); }
public ActionParser(Charset charset, LexerlessGrammarBuilder b, Class grammarClass, Object treeFactory, NodeBuilder nodeBuilder, GrammarRuleKey rootRule) { this.charset = charset; GrammarBuilderInterceptor grammarBuilderInterceptor = new GrammarBuilderInterceptor(b); Enhancer grammarEnhancer = new Enhancer(); grammarEnhancer.setSuperclass(grammarClass); grammarEnhancer.setCallback(grammarBuilderInterceptor); ActionMethodInterceptor actionMethodInterceptor = new ActionMethodInterceptor(grammarBuilderInterceptor); Enhancer actionEnhancer = new Enhancer(); actionEnhancer.setSuperclass(treeFactory.getClass()); actionEnhancer.setCallback(actionMethodInterceptor); Object grammar = grammarEnhancer.create( new Class[] {GrammarBuilder.class, treeFactory.getClass()}, new Object[] {grammarBuilderInterceptor, actionEnhancer.create()}); for (Method method : grammarClass.getMethods()) { if (method.getDeclaringClass().equals(Object.class)) { continue; } ReflectionUtils.invokeMethod(method, grammar); } this.syntaxTreeCreator = new SyntaxTreeCreator<>(treeFactory, grammarBuilderInterceptor, nodeBuilder); b.setRootRule(rootRule); this.rootRule = rootRule; this.parseRunner = new ParseRunner(b.build().getRootRule()); }
public static LexerlessGrammarBuilder createGrammarBuilder() { LexerlessGrammarBuilder b = LexerlessGrammarBuilder.create(); punctuators(b); keywords(b); literals(b); b.setRootRule(COMPILATION_UNIT); return b; }
public static LexerlessGrammarBuilder createGrammarBuilder() { LexerlessGrammarBuilder b = LexerlessGrammarBuilder.create(); punctuators(b); keywords(b); literals(b); b.setRootRule(COMPILATION_UNIT); return b; }
public static LexerlessGrammarBuilder createGrammarBuilder() { LexerlessGrammarBuilder b = LexerlessGrammarBuilder.create(); punctuators(b); keywords(b); literals(b); b.setRootRule(COMPILATION_UNIT); return b; }
public static LexerlessGrammarBuilder createGrammarBuilder() { LexerlessGrammarBuilder b = LexerlessGrammarBuilder.create(); macros(b); tokens(b); syntax(b); b.setRootRule(STYLESHEET); return b; }
public static LexerlessGrammarBuilder createCssGrammar() { LexerlessGrammarBuilder b = LexerlessGrammarBuilder.create(); macros(b); spacing(b, CSS_COMMENT_REGEX); tokens(b); b.setRootRule(STYLESHEET); return b; }
public static LexerlessGrammarBuilder createGrammarBuilder() { LexerlessGrammarBuilder b = LexerlessGrammarBuilder.create(); punctuators(b); keywords(b); literals(b); b.setRootRule(COMPILATION_UNIT); return b; }
public static LexerlessGrammarBuilder createCssGrammar() { LexerlessGrammarBuilder b = LexerlessGrammarBuilder.create(); macros(b); spacing(b, CSS_COMMENT_REGEX); tokens(b); b.setRootRule(STYLESHEET); return b; }
public static LexerlessGrammarBuilder createGrammarBuilder() { LexerlessGrammarBuilder b = LexerlessGrammarBuilder.create(); b.rule(IDENTIFIER_NAME).is( SPACING, b.regexp(EcmaScriptLexer.IDENTIFIER)); lexical(b); b.setRootRule(SCRIPT); return b; }
public static LexerlessGrammarBuilder createScssGrammar() { LexerlessGrammarBuilder b = LexerlessGrammarBuilder.create(); macros(b); spacing(b, SCSS_COMMENT_REGEX); tokens(b); scss(b); b.setRootRule(STYLESHEET); return b; }
public static LexerlessGrammarBuilder createEmbeddedCssGrammar() { LexerlessGrammarBuilder b = LexerlessGrammarBuilder.create(); macros(b); spacing(b, CSS_COMMENT_REGEX); tokens(b); embeddedCss(b); b.setRootRule(FILE_WITH_EMBEDDED_CSS); return b; }
public static LexerlessGrammarBuilder createLessGrammar() { LexerlessGrammarBuilder b = LexerlessGrammarBuilder.create(); macros(b); spacing(b, LESS_COMMENT_REGEX); tokens(b); less(b); b.setRootRule(STYLESHEET); return b; }
public static LexerlessGrammarBuilder createEmbeddedCssGrammar() { LexerlessGrammarBuilder b = LexerlessGrammarBuilder.create(); macros(b); spacing(b, CSS_COMMENT_REGEX); tokens(b); embeddedCss(b); b.setRootRule(FILE_WITH_EMBEDDED_CSS); return b; }
public static LexerlessGrammarBuilder createLessGrammar() { LexerlessGrammarBuilder b = LexerlessGrammarBuilder.create(); macros(b); spacing(b, LESS_COMMENT_REGEX); tokens(b); less(b); b.setRootRule(STYLESHEET); return b; }
public static LexerlessGrammarBuilder createScssGrammar() { LexerlessGrammarBuilder b = LexerlessGrammarBuilder.create(); macros(b); spacing(b, SCSS_COMMENT_REGEX); tokens(b); scss(b); b.setRootRule(STYLESHEET); return b; }
private static LexerlessGrammarBuilder common() { LexerlessGrammarBuilder b = LexerlessGrammarBuilder.create(); b.setRootRule(ROOT); b.rule(ROOT).is(RULE, b.endOfInput()); b.rule(TERM).is("t"); return b; } }
public static LexerlessGrammarBuilder createGrammarBuilder() { LexerlessGrammarBuilder b = LexerlessGrammarBuilder.create(); lexical(b); punctuators(b); keywords(b); expressions(b); branchAndGuardExpressions(b); statements(b); module(b); functions(b); b.setRootRule(module); return b; }
public static LexerlessGrammarBuilder createGrammarBuilder() { LexerlessGrammarBuilder b = LexerlessGrammarBuilder.create(); punctuator(b, LCURLYBRACE, "{"); punctuator(b, RCURLYBRACE, "}"); punctuator(b, LBRACKET, "["); punctuator(b, RBRACKET, "]"); punctuator(b, COMMA, ","); punctuator(b, COLON, ":"); b.rule(TRUE).is("true", WHITESPACE); b.rule(FALSE).is("false", WHITESPACE); b.rule(NULL).is("null", WHITESPACE); b.rule(WHITESPACE).is(b.regexp("[ \n\r\t\f]*+")); b.rule(NUMBER).is(b.regexp("-?+(0|[1-9][0-9]*+)(\\.[0-9]++)?+([eE][+-]?+[0-9]++)?+"), WHITESPACE); b.rule(STRING).is(b.regexp("\"([^\"\\\\]|\\\\([\"\\\\/bfnrt]|u[0-9a-fA-F]{4}))*+\""), WHITESPACE); b.rule(EOF).is(b.token(GenericTokenType.EOF, b.endOfInput())); b.setRootRule(JSON); return b; }
public static LexerlessGrammarBuilder createGrammarBuilder() { LexerlessGrammarBuilder b = LexerlessGrammarBuilder.create(); b.rule(WHITESPACE).is(b.commentTrivia(b.regexp("\\s*+"))).skip(); b.rule(PLUS).is('+', WHITESPACE); b.rule(MINUS).is('-', WHITESPACE); b.rule(DIV).is('/', WHITESPACE); b.rule(MUL).is('*', WHITESPACE); b.rule(NUMBER).is(b.regexp("[0-9]++"), WHITESPACE); b.rule(VARIABLE).is(b.regexp("\\p{javaJavaIdentifierStart}++\\p{javaJavaIdentifierPart}*+"), WHITESPACE); b.rule(LPAR).is('(', WHITESPACE); b.rule(RPAR).is(')', WHITESPACE); b.rule(EXPRESSION).is(WHITESPACE, ADDITIVE_EXPRESSION, b.endOfInput()); b.rule(ADDITIVE_EXPRESSION).is(MULTIPLICATIVE_EXPRESSION, b.zeroOrMore(b.firstOf(PLUS, MINUS), MULTIPLICATIVE_EXPRESSION)); b.rule(MULTIPLICATIVE_EXPRESSION).is(PRIMARY, b.zeroOrMore(b.firstOf(DIV, MUL), PRIMARY)).skipIfOneChild(); b.rule(PRIMARY).is(b.firstOf(NUMBER, PARENS, VARIABLE)).skipIfOneChild(); b.rule(PARENS).is(LPAR, ADDITIVE_EXPRESSION, RPAR); b.setRootRule(EXPRESSION); return b; }