|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.sonar.sslr.grammar.LexerlessGrammarBuilder
public class LexerlessGrammarBuilder
A builder for creating Parsing Expression Grammars for lexerless parsing.
Objects of following types can be used as an atomic parsing expressions:
LexerfulGrammarBuilder| Method Summary | |
|---|---|
LexerlessGrammar |
build()
Constructs grammar. |
Object |
commentTrivia(Object e)
Creates parsing expression - "comment trivia". |
protected ParsingExpression |
convertToExpression(Object e)
|
protected ParsingExpression[] |
convertToExpressions(List<Object> expressions)
|
static LexerlessGrammarBuilder |
create()
|
static LexerlessGrammarBuilder |
createBasedOn(LexerlessGrammarBuilder... base)
|
Object |
endOfInput()
Creates parsing expression - "end of input". |
Object |
firstOf(Object e1,
Object e2)
Creates parsing expression - "first of". |
Object |
firstOf(Object e1,
Object e2,
Object... rest)
Creates parsing expression - "first of". |
Object |
next(Object e)
Creates parsing expression - "next". |
Object |
next(Object e1,
Object... rest)
Creates parsing expression - "next". |
Object |
nextNot(Object e)
Creates parsing expression - "next not". |
Object |
nextNot(Object e1,
Object... rest)
Creates parsing expression - "next not". |
Object |
nothing()
Creates parsing expression - "nothing". |
Object |
oneOrMore(Object e)
Creates parsing expression - "one or more". |
Object |
oneOrMore(Object e1,
Object... rest)
Creates parsing expression - "one or more". |
Object |
optional(Object e)
Creates parsing expression - "optional". |
Object |
optional(Object e1,
Object... rest)
Creates parsing expression - "optional". |
Object |
regexp(String regexp)
Creates parsing expression based on regular expression. |
GrammarRuleBuilder |
rule(GrammarRuleKey ruleKey)
Allows to describe rule. |
Object |
sequence(Object e1,
Object e2)
Creates parsing expression - "sequence". |
Object |
sequence(Object e1,
Object e2,
Object... rest)
Creates parsing expression - "sequence". |
void |
setRootRule(GrammarRuleKey ruleKey)
Allows to specify that given rule should be root for grammar. |
Object |
skippedTrivia(Object e)
Creates parsing expression - "skipped trivia". |
Object |
token(TokenType tokenType,
Object e)
Creates parsing expression - "token". |
Object |
zeroOrMore(Object e)
Creates parsing expression - "zero or more". |
Object |
zeroOrMore(Object e1,
Object... rest)
Creates parsing expression - "zero or more". |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
|---|
public static LexerlessGrammarBuilder create()
public static LexerlessGrammarBuilder createBasedOn(LexerlessGrammarBuilder... base)
public GrammarRuleBuilder rule(GrammarRuleKey ruleKey)
public void setRootRule(GrammarRuleKey ruleKey)
public LexerlessGrammar build()
GrammarException - if some of rules were used, but not definedpublic Object regexp(String regexp)
regexp - regular expression
PatternSyntaxException - if the expression's syntax is invalidpublic Object endOfInput()
public Object token(TokenType tokenType,
Object e)
e - sub-expression
IllegalArgumentException - if given argument is not a parsing expressionpublic Object commentTrivia(Object e)
e - sub-expression
IllegalArgumentException - if given argument is not a parsing expressionpublic Object skippedTrivia(Object e)
e - sub-expression
IllegalArgumentException - if given argument is not a parsing expressionprotected ParsingExpression convertToExpression(Object e)
public final Object sequence(Object e1,
Object e2)
e1 - first sub-expressione2 - second sub-expression
IllegalArgumentException - if any of given arguments is not a parsing expression
public final Object sequence(Object e1,
Object e2,
Object... rest)
sequence(Object, Object) for more details.
e1 - first sub-expressione2 - second sub-expressionrest - rest of sub-expressions
IllegalArgumentException - if any of given arguments is not a parsing expression
public final Object firstOf(Object e1,
Object e2)
Be aware that in expression firstOf("foo", sequence("foo", "bar")) second sub-expression will never be executed.
e1 - first sub-expressione2 - second sub-expression
IllegalArgumentException - if any of given arguments is not a parsing expression
public final Object firstOf(Object e1,
Object e2,
Object... rest)
firstOf(Object, Object) for more details.
e1 - first sub-expressione2 - second sub-expressionrest - rest of sub-expressions
IllegalArgumentException - if any of given arguments is not a parsing expressionpublic final Object optional(Object e)
Be aware that this expression is greedy, i.e. expression sequence(optional("foo"), "foo") will never succeed.
e - sub-expression
IllegalArgumentException - if given argument is not a parsing expression
public final Object optional(Object e1,
Object... rest)
optional(sequence(e, rest)).
e1 - first sub-expressionrest - rest of sub-expressions
IllegalArgumentException - if any of given arguments is not a parsing expressionoptional(Object),
sequence(Object, Object)public final Object oneOrMore(Object e)
Be aware that:
sequence(oneOrMore("foo"), "foo") will never succeed.
oneOrMore(optional("foo")) parser will report infinite loop.
e - sub-expression
IllegalArgumentException - if given argument is not a parsing expression
public final Object oneOrMore(Object e1,
Object... rest)
oneOrMore(sequence(e1, rest)).
e1 - first sub-expressionrest - rest of sub-expressions
IllegalArgumentException - if any of given arguments is not a parsing expressiononeOrMore(Object),
sequence(Object, Object)public final Object zeroOrMore(Object e)
Be aware that:
sequence(zeroOrMore("foo"), "foo") will never succeed.
zeroOrMore(optional("foo")) parser will report infinite loop.
e - sub-expression
IllegalArgumentException - if given argument is not a parsing expression
public final Object zeroOrMore(Object e1,
Object... rest)
zeroOrMore(sequence(e1, rest)).
e1 - sub-expressionrest - rest of sub-expressions
IllegalArgumentException - if any of given arguments is not a parsing expressionzeroOrMore(Object),
sequence(Object, Object)public final Object next(Object e)
e - sub-expression
IllegalArgumentException - if given argument is not a parsing expression
public final Object next(Object e1,
Object... rest)
next(sequence(e1, rest)).
e1 - first sub-expressionrest - rest of sub-expressions
IllegalArgumentException - if any of given arguments is not a parsing expressionnext(Object),
sequence(Object, Object)public final Object nextNot(Object e)
e - sub-expression
IllegalArgumentException - if given argument is not a parsing expression
public final Object nextNot(Object e1,
Object... rest)
nextNot(sequence(e1, rest)).
e1 - sub-expressionrest - rest of sub-expressions
IllegalArgumentException - if any of given arguments is not a parsing expressionnextNot(Object),
sequence(Object, Object)public final Object nothing()
protected final ParsingExpression[] convertToExpressions(List<Object> expressions)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||