6 ASTLabelType=pANTLR3_BASE_TREE;
34 ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*
41 : '-'? ('0'..'9')+ '.' ('0'..'9')+ EXPONENT?
42 //| '-'? '.' ('0'..'9')+ EXPONENT?
43 | '-'? ('0'..'9')+ EXPONENT
47 : '//' ~('\n'|'\r')* '\r'? '\n' {$channel=HIDDEN;}
48 | '/*' ( options {greedy=false;} : . )* '*/' {$channel=HIDDEN;}
59 : '"' ( ESC_SEQ | ~('\\'|'"') )* '"'
60 | '"""' ( ~('"') | '"' ~('"') | '""' ~('"') )* '"""'
64 EXPONENT : ('e'|'E') ('+'|'-')? ('0'..'9')+ ;
67 HEX_DIGIT : ('0'..'9'|'a'..'f'|'A'..'F') ;
71 : '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\')
78 : '\\' ('0'..'3') ('0'..'7') ('0'..'7')
79 | '\\' ('0'..'7') ('0'..'7')
85 : '\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT
88 /* -----------------------------------------------------------
90 ----------------------------------------------------------- */
93 typeDefinitions : typeDefinition* -> ^(TYPE_DEFINITIONS typeDefinition*);
96 : 'type' ID '=' unionType -> ^(TYPE_DEFINITION ID unionType)
101 | ('|' unionComponent)+
102 -> ^(UNION_TYPE unionComponent+)
105 unionComponent : ID type? -> ^(TYPE_COMPONENT ID type?) ;
108 : (basicType -> basicType)
109 ('[' arrayLength? ']' -> ^(ARRAY_TYPE $type arrayLength?))* ;
125 : '(' (unionType (',' unionType)*)? ')'
126 -> ^(TUPLE_TYPE unionType*)
130 : '{' (component (',' component)*)? '}'
131 -> ^(RECORD_TYPE component*)
136 -> ^(TYPE_COMPONENT ID unionType)
140 : ID ('(' parameter (',' parameter)* ')')?
141 -> ^(TYPE_REFERENCE ID parameter*)
145 : ID '=' parameterValue -> ^(TYPE_ANNOTATION ID parameterValue)
153 | ('[' | '(') range (']' | ')')
177 /* -----------------------------------------------------------
179 ----------------------------------------------------------- */
181 valueDefinitions : valueDefinition* -> ^(VALUE_DEFINITIONS valueDefinition*);
184 : ID ':' unionType '=' value
185 -> ^(VALUE_DEFINITION ID unionType value)
189 : (basicValue -> basicValue)
190 (':' type -> ^(VARIANT type $value))*
206 : '[' (value (',' value)*)? ']'
211 : '(' (value (',' value)*)? ')'
217 -> ^(TAGGED_VALUE ID basicValue)
221 : '{' (recordAssignment (',' recordAssignment)*)? '}'
222 -> ^(RECORD recordAssignment*)
227 -> ^(ASSIGNMENT ID value)
230 map : 'map' '{' (mapAssignment (',' mapAssignment)*)? '}'
231 -> ^(MAP mapAssignment*)
236 -> ^(ASSIGNMENT value*)