info

ANTLR、とりあえずS式がパースできるようになった

あとはアクションを書く
シンボルの定義が予想以上に文字を食うのでそこらへんに手まどった。
C言語APiとか、ANTLR_VECTOR構造体のメンバがわからなかったけど公式ページにドキュメントがあってよかった。

toplevel : s_expr*
	;
	
s_expr  : atom
	| list
	| '\'' s_expr
	;
	
	
list	: '(' (s_expr+  ('.' s_expr )? )?')'
	;

atom 	: SYMBOL
	| INTLITERAL
	;

SYMBOL  
	: SYMBOLNONUM ('0'..'9' | SYMBOLNONUM)*
	;

fragment
SYMBOLNONUM 
	: ~('0'..'9' |'(' | ')' | '\\'|'\"' | '\'' | '.' | ' ' | '\r' | '\n' | ';')
	;

INTLITERAL :	'0'..'9'+
    ;

COMMENT
    :   ';' ~('\n'|'\r')* '\r'? '\n' {$channel=HIDDEN;}
    ;


WS  :   ( ' '
        | '\t'
        | '\r'
        | '\n'
        ) {$channel=HIDDEN;}
    ;