net.cscott.sdr.calls.ast
Class AstParser
java.lang.Object
org.antlr.runtime.BaseRecognizer
org.antlr.runtime.Parser
net.cscott.sdr.calls.ast.AstParser
public class AstParser
- extends org.antlr.runtime.Parser
Simple lisp-like grammar for printing/scanning AstNode
trees.
If this were simpler and more lisp-like, I wouldn't need ANTLR to parse it!
- Tests:
Simple conversion:
js> new AstParser("(Seq (Prim -1, in 1, none, 1))").ast()
(Seq (Prim -1, in 1, none, 1))
js> new AstParser("(If (Condition true) (Seq (Apply nothing)))").ast()
(If (Condition true) (Seq (Apply nothing)))
White space is ignored:
js> new AstParser("( Seq\n (Prim\tin\r-1 , 1 , out 1 / 4 ,1 ) ) ").ast()
(Seq (Prim in -1, 1, in -1/4, 1))
Call names, predicates, formations, etc can be quoted:
js> new AstParser("(Condition \"Condition\" (Condition \"If\") (Condition \"Prim\"))").ast()
(Condition Condition (Condition If) (Condition Prim))
js> new AstParser('(If (Condition true) (Seq (Apply nothing)) "Message!" 1/2)').ast()
(If (Condition true) (Seq (Apply nothing)) "Message!" 1/2)
js> new AstParser('(If (Condition true) (Seq (Apply nothing)) "Message!")').ast()
(If (Condition true) (Seq (Apply nothing)) "Message!")
Keywords ought to be ignored in call names, etc.
js> new AstParser("(Condition Condition (Condition If) (Condition Prim))").ast()
(Condition Condition (Condition If) (Condition Prim))
Parsing complicated Prims:
js> new AstParser("(Seq (Prim 1 1/2, 1/2, left, 1, PASS_LEFT, FORCE_ARC, FORCE_ROLL_RIGHT))").ast()
(Seq (Prim 1 1/2, 1/2, left, 1, PASS_LEFT, FORCE_ARC, FORCE_ROLL_RIGHT))
Fields inherited from class org.antlr.runtime.Parser |
input |
Fields inherited from class org.antlr.runtime.BaseRecognizer |
DEFAULT_TOKEN_CHANNEL, HIDDEN, INITIAL_FOLLOW_STACK_SIZE, MEMO_RULE_FAILED, MEMO_RULE_UNKNOWN, NEXT_TOKEN_RULE_NAME, state |
Constructor Summary |
AstParser(String s)
|
AstParser(org.antlr.runtime.TokenStream input)
|
AstParser(org.antlr.runtime.TokenStream input,
org.antlr.runtime.RecognizerSharedState state)
|
Methods inherited from class org.antlr.runtime.Parser |
getCurrentInputSymbol, getMissingSymbol, getSourceName, getTokenStream, reset, setTokenStream, traceIn, traceOut |
Methods inherited from class org.antlr.runtime.BaseRecognizer |
alreadyParsedRule, beginResync, combineFollows, computeContextSensitiveRuleFOLLOW, computeErrorRecoverySet, consumeUntil, consumeUntil, displayRecognitionError, emitErrorMessage, endResync, getBacktrackingLevel, getErrorHeader, getErrorMessage, getNumberOfSyntaxErrors, getRuleInvocationStack, getRuleInvocationStack, getRuleMemoization, getRuleMemoizationCacheSize, getTokenErrorDisplay, match, matchAny, memoize, mismatch, mismatchIsMissingToken, mismatchIsUnwantedToken, pushFollow, recover, recoverFromMismatchedSet, recoverFromMismatchedToken, reportError, toStrings, traceIn, traceOut |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
tokenNames
public static final String[] tokenNames
WS
public static final int WS
- See Also:
- Constant Field Values
T__15
public static final int T__15
- See Also:
- Constant Field Values
T__12
public static final int T__12
- See Also:
- Constant Field Values
T__11
public static final int T__11
- See Also:
- Constant Field Values
T__14
public static final int T__14
- See Also:
- Constant Field Values
T__13
public static final int T__13
- See Also:
- Constant Field Values
T__10
public static final int T__10
- See Also:
- Constant Field Values
IDENT
public static final int IDENT
- See Also:
- Constant Field Values
INT
public static final int INT
- See Also:
- Constant Field Values
EOF
public static final int EOF
- See Also:
- Constant Field Values
T__9
public static final int T__9
- See Also:
- Constant Field Values
T__8
public static final int T__8
- See Also:
- Constant Field Values
STRING
public static final int STRING
- See Also:
- Constant Field Values
FOLLOW_ast_in_start54
public static final org.antlr.runtime.BitSet FOLLOW_ast_in_start54
FOLLOW_EOF_in_start56
public static final org.antlr.runtime.BitSet FOLLOW_EOF_in_start56
FOLLOW_comp_in_ast79
public static final org.antlr.runtime.BitSet FOLLOW_comp_in_ast79
FOLLOW_condition_in_ast89
public static final org.antlr.runtime.BitSet FOLLOW_condition_in_ast89
FOLLOW_optcall_in_ast99
public static final org.antlr.runtime.BitSet FOLLOW_optcall_in_ast99
FOLLOW_parcall_in_ast109
public static final org.antlr.runtime.BitSet FOLLOW_parcall_in_ast109
FOLLOW_seqcall_in_ast119
public static final org.antlr.runtime.BitSet FOLLOW_seqcall_in_ast119
FOLLOW_if__in_comp141
public static final org.antlr.runtime.BitSet FOLLOW_if__in_comp141
FOLLOW_in_in_comp151
public static final org.antlr.runtime.BitSet FOLLOW_in_in_comp151
FOLLOW_opt_in_comp161
public static final org.antlr.runtime.BitSet FOLLOW_opt_in_comp161
FOLLOW_par_in_comp171
public static final org.antlr.runtime.BitSet FOLLOW_par_in_comp171
FOLLOW_seq_in_comp181
public static final org.antlr.runtime.BitSet FOLLOW_seq_in_comp181
FOLLOW_8_in_condition218
public static final org.antlr.runtime.BitSet FOLLOW_8_in_condition218
FOLLOW_IDENT_in_condition220
public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_condition220
FOLLOW_predicate_in_condition222
public static final org.antlr.runtime.BitSet FOLLOW_predicate_in_condition222
FOLLOW_condition_in_condition227
public static final org.antlr.runtime.BitSet FOLLOW_condition_in_condition227
FOLLOW_9_in_condition233
public static final org.antlr.runtime.BitSet FOLLOW_9_in_condition233
FOLLOW_8_in_optcall273
public static final org.antlr.runtime.BitSet FOLLOW_8_in_optcall273
FOLLOW_IDENT_in_optcall275
public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_optcall275
FOLLOW_selectors_in_optcall277
public static final org.antlr.runtime.BitSet FOLLOW_selectors_in_optcall277
FOLLOW_comp_in_optcall281
public static final org.antlr.runtime.BitSet FOLLOW_comp_in_optcall281
FOLLOW_9_in_optcall283
public static final org.antlr.runtime.BitSet FOLLOW_9_in_optcall283
FOLLOW_8_in_parcall323
public static final org.antlr.runtime.BitSet FOLLOW_8_in_parcall323
FOLLOW_IDENT_in_parcall325
public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_parcall325
FOLLOW_tags_in_parcall327
public static final org.antlr.runtime.BitSet FOLLOW_tags_in_parcall327
FOLLOW_comp_in_parcall331
public static final org.antlr.runtime.BitSet FOLLOW_comp_in_parcall331
FOLLOW_9_in_parcall333
public static final org.antlr.runtime.BitSet FOLLOW_9_in_parcall333
FOLLOW_apply_in_seqcall363
public static final org.antlr.runtime.BitSet FOLLOW_apply_in_seqcall363
FOLLOW_part_in_seqcall373
public static final org.antlr.runtime.BitSet FOLLOW_part_in_seqcall373
FOLLOW_prim_in_seqcall384
public static final org.antlr.runtime.BitSet FOLLOW_prim_in_seqcall384
FOLLOW_8_in_apply422
public static final org.antlr.runtime.BitSet FOLLOW_8_in_apply422
FOLLOW_IDENT_in_apply424
public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_apply424
FOLLOW_simple_words_in_apply428
public static final org.antlr.runtime.BitSet FOLLOW_simple_words_in_apply428
FOLLOW_apply_in_apply433
public static final org.antlr.runtime.BitSet FOLLOW_apply_in_apply433
FOLLOW_9_in_apply439
public static final org.antlr.runtime.BitSet FOLLOW_9_in_apply439
FOLLOW_8_in_part479
public static final org.antlr.runtime.BitSet FOLLOW_8_in_part479
FOLLOW_IDENT_in_part481
public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_part481
FOLLOW_bool_in_part485
public static final org.antlr.runtime.BitSet FOLLOW_bool_in_part485
FOLLOW_comp_in_part489
public static final org.antlr.runtime.BitSet FOLLOW_comp_in_part489
FOLLOW_9_in_part491
public static final org.antlr.runtime.BitSet FOLLOW_9_in_part491
FOLLOW_8_in_prim536
public static final org.antlr.runtime.BitSet FOLLOW_8_in_prim536
FOLLOW_IDENT_in_prim538
public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_prim538
FOLLOW_in_out_num_in_prim542
public static final org.antlr.runtime.BitSet FOLLOW_in_out_num_in_prim542
FOLLOW_10_in_prim544
public static final org.antlr.runtime.BitSet FOLLOW_10_in_prim544
FOLLOW_in_out_num_in_prim548
public static final org.antlr.runtime.BitSet FOLLOW_in_out_num_in_prim548
FOLLOW_10_in_prim550
public static final org.antlr.runtime.BitSet FOLLOW_10_in_prim550
FOLLOW_in_out_dir_in_prim554
public static final org.antlr.runtime.BitSet FOLLOW_in_out_dir_in_prim554
FOLLOW_10_in_prim556
public static final org.antlr.runtime.BitSet FOLLOW_10_in_prim556
FOLLOW_number_in_prim568
public static final org.antlr.runtime.BitSet FOLLOW_number_in_prim568
FOLLOW_prim_flags_in_prim572
public static final org.antlr.runtime.BitSet FOLLOW_prim_flags_in_prim572
FOLLOW_9_in_prim574
public static final org.antlr.runtime.BitSet FOLLOW_9_in_prim574
FOLLOW_10_in_prim_flags613
public static final org.antlr.runtime.BitSet FOLLOW_10_in_prim_flags613
FOLLOW_prim_flag_in_prim_flags615
public static final org.antlr.runtime.BitSet FOLLOW_prim_flag_in_prim_flags615
FOLLOW_IDENT_in_prim_flag652
public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_prim_flag652
FOLLOW_8_in_if_685
public static final org.antlr.runtime.BitSet FOLLOW_8_in_if_685
FOLLOW_IDENT_in_if_687
public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_if_687
FOLLOW_condition_in_if_689
public static final org.antlr.runtime.BitSet FOLLOW_condition_in_if_689
FOLLOW_comp_in_if_693
public static final org.antlr.runtime.BitSet FOLLOW_comp_in_if_693
FOLLOW_STRING_in_if_698
public static final org.antlr.runtime.BitSet FOLLOW_STRING_in_if_698
FOLLOW_number_in_if_703
public static final org.antlr.runtime.BitSet FOLLOW_number_in_if_703
FOLLOW_9_in_if_709
public static final org.antlr.runtime.BitSet FOLLOW_9_in_if_709
FOLLOW_8_in_in749
public static final org.antlr.runtime.BitSet FOLLOW_8_in_in749
FOLLOW_IDENT_in_in751
public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_in751
FOLLOW_number_in_in755
public static final org.antlr.runtime.BitSet FOLLOW_number_in_in755
FOLLOW_comp_in_in759
public static final org.antlr.runtime.BitSet FOLLOW_comp_in_in759
FOLLOW_9_in_in761
public static final org.antlr.runtime.BitSet FOLLOW_9_in_in761
FOLLOW_8_in_opt806
public static final org.antlr.runtime.BitSet FOLLOW_8_in_opt806
FOLLOW_IDENT_in_opt808
public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_opt808
FOLLOW_optcall_in_opt811
public static final org.antlr.runtime.BitSet FOLLOW_optcall_in_opt811
FOLLOW_9_in_opt817
public static final org.antlr.runtime.BitSet FOLLOW_9_in_opt817
FOLLOW_8_in_par862
public static final org.antlr.runtime.BitSet FOLLOW_8_in_par862
FOLLOW_IDENT_in_par864
public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_par864
FOLLOW_parcall_in_par867
public static final org.antlr.runtime.BitSet FOLLOW_parcall_in_par867
FOLLOW_9_in_par873
public static final org.antlr.runtime.BitSet FOLLOW_9_in_par873
FOLLOW_8_in_seq918
public static final org.antlr.runtime.BitSet FOLLOW_8_in_seq918
FOLLOW_IDENT_in_seq920
public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_seq920
FOLLOW_seqcall_in_seq923
public static final org.antlr.runtime.BitSet FOLLOW_seqcall_in_seq923
FOLLOW_9_in_seq929
public static final org.antlr.runtime.BitSet FOLLOW_9_in_seq929
FOLLOW_list_elem_in_predicate960
public static final org.antlr.runtime.BitSet FOLLOW_list_elem_in_predicate960
FOLLOW_string_list_in_selectors990
public static final org.antlr.runtime.BitSet FOLLOW_string_list_in_selectors990
FOLLOW_string_list_in_tags1020
public static final org.antlr.runtime.BitSet FOLLOW_string_list_in_tags1020
FOLLOW_11_in_string_list1058
public static final org.antlr.runtime.BitSet FOLLOW_11_in_string_list1058
FOLLOW_list_elem_in_string_list1062
public static final org.antlr.runtime.BitSet FOLLOW_list_elem_in_string_list1062
FOLLOW_10_in_string_list1076
public static final org.antlr.runtime.BitSet FOLLOW_10_in_string_list1076
FOLLOW_list_elem_in_string_list1080
public static final org.antlr.runtime.BitSet FOLLOW_list_elem_in_string_list1080
FOLLOW_12_in_string_list1087
public static final org.antlr.runtime.BitSet FOLLOW_12_in_string_list1087
FOLLOW_simple_words_in_list_elem1109
public static final org.antlr.runtime.BitSet FOLLOW_simple_words_in_list_elem1109
FOLLOW_STRING_in_list_elem1119
public static final org.antlr.runtime.BitSet FOLLOW_STRING_in_list_elem1119
FOLLOW_opt_sign_in_number1145
public static final org.antlr.runtime.BitSet FOLLOW_opt_sign_in_number1145
FOLLOW_integer_in_number1147
public static final org.antlr.runtime.BitSet FOLLOW_integer_in_number1147
FOLLOW_fraction_in_number1149
public static final org.antlr.runtime.BitSet FOLLOW_fraction_in_number1149
FOLLOW_opt_sign_in_number1167
public static final org.antlr.runtime.BitSet FOLLOW_opt_sign_in_number1167
FOLLOW_integer_in_number1169
public static final org.antlr.runtime.BitSet FOLLOW_integer_in_number1169
FOLLOW_opt_sign_in_number1187
public static final org.antlr.runtime.BitSet FOLLOW_opt_sign_in_number1187
FOLLOW_fraction_in_number1189
public static final org.antlr.runtime.BitSet FOLLOW_fraction_in_number1189
FOLLOW_13_in_opt_sign1221
public static final org.antlr.runtime.BitSet FOLLOW_13_in_opt_sign1221
FOLLOW_14_in_opt_sign1231
public static final org.antlr.runtime.BitSet FOLLOW_14_in_opt_sign1231
FOLLOW_integer_in_fraction1267
public static final org.antlr.runtime.BitSet FOLLOW_integer_in_fraction1267
FOLLOW_15_in_fraction1269
public static final org.antlr.runtime.BitSet FOLLOW_15_in_fraction1269
FOLLOW_integer_in_fraction1273
public static final org.antlr.runtime.BitSet FOLLOW_integer_in_fraction1273
FOLLOW_INT_in_integer1305
public static final org.antlr.runtime.BitSet FOLLOW_INT_in_integer1305
FOLLOW_in_out_in_in_out_num1337
public static final org.antlr.runtime.BitSet FOLLOW_in_out_in_in_out_num1337
FOLLOW_number_in_in_out_num1340
public static final org.antlr.runtime.BitSet FOLLOW_number_in_in_out_num1340
FOLLOW_in_out_in_in_out_dir1371
public static final org.antlr.runtime.BitSet FOLLOW_in_out_in_in_out_dir1371
FOLLOW_rotation_in_in_out_dir1374
public static final org.antlr.runtime.BitSet FOLLOW_rotation_in_in_out_dir1374
FOLLOW_IDENT_in_rotation1412
public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_rotation1412
FOLLOW_fraction_in_rotation1420
public static final org.antlr.runtime.BitSet FOLLOW_fraction_in_rotation1420
FOLLOW_IDENT_in_in_out1454
public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_in_out1454
FOLLOW_IDENT_in_in_out1474
public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_in_out1474
FOLLOW_IDENT_in_bool1508
public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_bool1508
FOLLOW_IDENT_in_bool1528
public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_bool1528
FOLLOW_IDENT_in_simple_word1552
public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_simple_word1552
FOLLOW_INT_in_simple_word1562
public static final org.antlr.runtime.BitSet FOLLOW_INT_in_simple_word1562
FOLLOW_simple_word_in_simple_words1593
public static final org.antlr.runtime.BitSet FOLLOW_simple_word_in_simple_words1593
FOLLOW_simple_word_in_simple_words1608
public static final org.antlr.runtime.BitSet FOLLOW_simple_word_in_simple_words1608
AstParser
public AstParser(org.antlr.runtime.TokenStream input)
AstParser
public AstParser(org.antlr.runtime.TokenStream input,
org.antlr.runtime.RecognizerSharedState state)
AstParser
public AstParser(String s)
getTokenNames
public String[] getTokenNames()
- Overrides:
getTokenNames
in class org.antlr.runtime.BaseRecognizer
getGrammarFileName
public String getGrammarFileName()
- Overrides:
getGrammarFileName
in class org.antlr.runtime.BaseRecognizer
start
public final AstNode start()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
ast
public final AstNode ast()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
comp
public final Comp comp()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
condition
public final Condition condition()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
optcall
public final OptCall optcall()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
parcall
public final ParCall parcall()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
seqcall
public final SeqCall seqcall()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
apply
public final Apply apply()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
part
public final Part part()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
prim
public final Prim prim()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
prim_flags
public final Set<Prim.Flag> prim_flags()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
prim_flag
public final Prim.Flag prim_flag()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
if_
public final If if_()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
in
public final In in()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
opt
public final Opt opt()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
par
public final Par par()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
seq
public final Seq seq()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
predicate
public final String predicate()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
selectors
public final List<Selector> selectors()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
tags
public final Set<TaggedFormation.Tag> tags()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
string_list
public final List<String> string_list()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
list_elem
public final String list_elem()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
number
public final Fraction number()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
opt_sign
public final boolean opt_sign()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
fraction
public final Fraction fraction()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
integer
public final Integer integer()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
in_out_num
public final AstParser.in_out_num_return in_out_num()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
in_out_dir
public final AstParser.in_out_dir_return in_out_dir()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
rotation
public final AstParser.rotation_return rotation()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
in_out
public final AstParser.in_out_return in_out()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
bool
public final Boolean bool()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
simple_word
public final String simple_word()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
simple_words
public final String simple_words()
throws org.antlr.runtime.RecognitionException
- Throws:
org.antlr.runtime.RecognitionException
Copyright © 2006-2009 C. Scott Ananian