]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.databoard/cpp/DataBoardTest/DataBoard/SimanticsData.g
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.databoard / cpp / DataBoardTest / DataBoard / SimanticsData.g
index 3afd843d84f22a375cb8b2620a3fa43f2730f04a..694f06929dd5eeacfe0609acbea49f59ea1f0748 100644 (file)
-grammar SimanticsData;\r
-\r
-options {\r
-    language = C;\r
-    output = AST;\r
-    ASTLabelType=pANTLR3_BASE_TREE;\r
-}\r
-\r
-tokens {\r
-    TYPE_DEFINITIONS;\r
-    TYPE_DEFINITION;    \r
-\r
-    UNION_TYPE;    \r
-    RECORD_TYPE;\r
-    TUPLE_TYPE;\r
-    ARRAY_TYPE;\r
-    TYPE_REFERENCE;\r
-    TYPE_ANNOTATION;    \r
-    TYPE_COMPONENT;\r
-    \r
-    VALUE_DEFINITIONS;\r
-    VALUE_DEFINITION;\r
-\r
-    NO_VALUE;    \r
-    VARIANT;\r
-    ARRAY;\r
-    TUPLE;\r
-    TAGGED_VALUE;\r
-    RECORD;\r
-    MAP;\r
-    ASSIGNMENT;\r
-}\r
-\r
-ID  :  ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*\r
-    ;\r
-\r
-INT :  '-'? '0'..'9'+\r
-    ;\r
-\r
-FLOAT\r
-    :   '-'? ('0'..'9')+ '.' ('0'..'9')+ EXPONENT?\r
-    //|   '-'? '.' ('0'..'9')+ EXPONENT?\r
-    |   '-'? ('0'..'9')+ EXPONENT\r
-    ;\r
-\r
-COMMENT\r
-    :   '//' ~('\n'|'\r')* '\r'? '\n' {$channel=HIDDEN;}\r
-    |   '/*' ( options {greedy=false;} : . )* '*/' {$channel=HIDDEN;}\r
-    ;\r
-\r
-WS  :   ( ' '\r
-        | '\t'\r
-        | '\r'\r
-        | '\n'\r
-        ) {$channel=HIDDEN;}\r
-    ;\r
-\r
-STRING\r
-    :  '"' ( ESC_SEQ | ~('\\'|'"') )* '"'\r
-    |  '"""' ( ~('"') | '"' ~('"') | '""' ~('"') )* '"""'\r
-    ;\r
-\r
-fragment\r
-EXPONENT : ('e'|'E') ('+'|'-')? ('0'..'9')+ ;\r
-\r
-fragment\r
-HEX_DIGIT : ('0'..'9'|'a'..'f'|'A'..'F') ;\r
-\r
-fragment\r
-ESC_SEQ\r
-    :   '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\')\r
-    |   UNICODE_ESC\r
-    |   OCTAL_ESC\r
-    ;\r
-\r
-fragment\r
-OCTAL_ESC\r
-    :   '\\' ('0'..'3') ('0'..'7') ('0'..'7')\r
-    |   '\\' ('0'..'7') ('0'..'7')\r
-    |   '\\' ('0'..'7')\r
-    ;\r
-\r
-fragment\r
-UNICODE_ESC\r
-    :   '\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT\r
-    ;\r
-    \r
-/* -----------------------------------------------------------\r
-   TYPE DEFINITIONS    \r
-   ----------------------------------------------------------- */\r
\r
-    \r
-typeDefinitions : typeDefinition* -> ^(TYPE_DEFINITIONS typeDefinition*);\r
-\r
-typeDefinition \r
-    : 'type' ID '=' unionType -> ^(TYPE_DEFINITION ID unionType)\r
-    ;\r
-    \r
-unionType \r
-    : type\r
-    | ('|' unionComponent)+\r
-    -> ^(UNION_TYPE unionComponent+)\r
-    ;\r
-   \r
-unionComponent : ID type? -> ^(TYPE_COMPONENT ID type?) ;\r
-\r
-type \r
-    : (basicType -> basicType)\r
-      ('[' arrayLength? ']' -> ^(ARRAY_TYPE $type arrayLength?))* ;\r
-\r
-arrayLength \r
-    : INT\r
-    | INT '..'\r
-    | '..' INT \r
-    | INT '..' INT\r
-    ;\r
-\r
-basicType \r
-    : tupleType\r
-    | recordType\r
-    | typeReference\r
-    ;\r
-    \r
-tupleType \r
-    : '(' (unionType (',' unionType)*)? ')' \r
-    -> ^(TUPLE_TYPE unionType*) \r
-    ;\r
-\r
-recordType \r
-    : '{' (component (',' component)*)? '}' \r
-    -> ^(RECORD_TYPE component*)\r
-    ;\r
-\r
-component \r
-    : ID ':' unionType \r
-    -> ^(TYPE_COMPONENT ID unionType) \r
-    ;\r
-\r
-typeReference \r
-    : ID ('(' parameter (',' parameter)* ')')? \r
-    -> ^(TYPE_REFERENCE ID parameter*)\r
-    ;\r
-\r
-parameter \r
-    : ID '=' parameterValue -> ^(TYPE_ANNOTATION ID parameterValue)\r
-    | unionType \r
-    ;\r
-\r
-parameterValue \r
-    : string\r
-    | boolean\r
-    | number\r
-    | ('[' | '(') range (']' | ')')\r
-    ;\r
-    \r
-range\r
-    : number\r
-    | number '..'\r
-    | '..' number \r
-    | number '..' number\r
-    ;    \r
-    \r
-number\r
-    : INT\r
-    | FLOAT\r
-    ;\r
-\r
-string\r
-    : STRING\r
-    ;\r
-    \r
-boolean\r
-    : 'true'\r
-    | 'false'\r
-    ;\r
-\r
-/* -----------------------------------------------------------\r
-   VALUE DEFINITIONS    \r
-   ----------------------------------------------------------- */\r
-\r
-valueDefinitions : valueDefinition* -> ^(VALUE_DEFINITIONS valueDefinition*);\r
-\r
-valueDefinition \r
-    : ID ':' unionType '=' value\r
-    -> ^(VALUE_DEFINITION ID unionType value) \r
-    ;\r
-\r
-value \r
-    : (basicValue -> basicValue)\r
-      (':' type -> ^(VARIANT type $value))* \r
-    ;\r
-\r
-basicValue \r
-    : 'null' -> NO_VALUE\r
-    | string\r
-    | number\r
-    | boolean\r
-    | array\r
-    | tuple\r
-    | taggedValue\r
-    | map\r
-    | record\r
-    ;\r
-\r
-array \r
-    : '[' (value (',' value)*)? ']'\r
-    -> ^(ARRAY value*) \r
-    ;\r
-\r
-tuple \r
-    : '(' (value (',' value)*)? ')'\r
-    -> ^(TUPLE value*) \r
-    ;\r
-\r
-taggedValue \r
-    : ID basicValue\r
-    -> ^(TAGGED_VALUE ID basicValue) \r
-    ;\r
-\r
-record \r
-    : '{' (recordAssignment (',' recordAssignment)*)? '}'\r
-    -> ^(RECORD recordAssignment*) \r
-    ;\r
-\r
-recordAssignment \r
-    : ID '=' value\r
-    -> ^(ASSIGNMENT ID value)\r
-    ;\r
-\r
-map : 'map' '{' (mapAssignment (',' mapAssignment)*)? '}'\r
-    -> ^(MAP mapAssignment*) \r
-    ;\r
-\r
-mapAssignment \r
-    : value '=' value\r
-    -> ^(ASSIGNMENT value*) \r
+grammar SimanticsData;
+
+options {
+    language = C;
+    output = AST;
+    ASTLabelType=pANTLR3_BASE_TREE;
+}
+
+tokens {
+    TYPE_DEFINITIONS;
+    TYPE_DEFINITION;    
+
+    UNION_TYPE;    
+    RECORD_TYPE;
+    TUPLE_TYPE;
+    ARRAY_TYPE;
+    TYPE_REFERENCE;
+    TYPE_ANNOTATION;    
+    TYPE_COMPONENT;
+    
+    VALUE_DEFINITIONS;
+    VALUE_DEFINITION;
+
+    NO_VALUE;    
+    VARIANT;
+    ARRAY;
+    TUPLE;
+    TAGGED_VALUE;
+    RECORD;
+    MAP;
+    ASSIGNMENT;
+}
+
+ID  :  ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*
+    ;
+
+INT :  '-'? '0'..'9'+
+    ;
+
+FLOAT
+    :   '-'? ('0'..'9')+ '.' ('0'..'9')+ EXPONENT?
+    //|   '-'? '.' ('0'..'9')+ EXPONENT?
+    |   '-'? ('0'..'9')+ EXPONENT
+    ;
+
+COMMENT
+    :   '//' ~('\n'|'\r')* '\r'? '\n' {$channel=HIDDEN;}
+    |   '/*' ( options {greedy=false;} : . )* '*/' {$channel=HIDDEN;}
+    ;
+
+WS  :   ( ' '
+        | '\t'
+        | '\r'
+        | '\n'
+        ) {$channel=HIDDEN;}
+    ;
+
+STRING
+    :  '"' ( ESC_SEQ | ~('\\'|'"') )* '"'
+    |  '"""' ( ~('"') | '"' ~('"') | '""' ~('"') )* '"""'
+    ;
+
+fragment
+EXPONENT : ('e'|'E') ('+'|'-')? ('0'..'9')+ ;
+
+fragment
+HEX_DIGIT : ('0'..'9'|'a'..'f'|'A'..'F') ;
+
+fragment
+ESC_SEQ
+    :   '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\')
+    |   UNICODE_ESC
+    |   OCTAL_ESC
+    ;
+
+fragment
+OCTAL_ESC
+    :   '\\' ('0'..'3') ('0'..'7') ('0'..'7')
+    |   '\\' ('0'..'7') ('0'..'7')
+    |   '\\' ('0'..'7')
+    ;
+
+fragment
+UNICODE_ESC
+    :   '\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT
+    ;
+    
+/* -----------------------------------------------------------
+   TYPE DEFINITIONS    
+   ----------------------------------------------------------- */
+    
+typeDefinitions : typeDefinition* -> ^(TYPE_DEFINITIONS typeDefinition*);
+
+typeDefinition 
+    : 'type' ID '=' unionType -> ^(TYPE_DEFINITION ID unionType)
+    ;
+    
+unionType 
+    : type
+    | ('|' unionComponent)+
+    -> ^(UNION_TYPE unionComponent+)
+    ;
+   
+unionComponent : ID type? -> ^(TYPE_COMPONENT ID type?) ;
+
+type 
+    : (basicType -> basicType)
+      ('[' arrayLength? ']' -> ^(ARRAY_TYPE $type arrayLength?))* ;
+
+arrayLength 
+    : INT
+    | INT '..'
+    | '..' INT 
+    | INT '..' INT
+    ;
+
+basicType 
+    : tupleType
+    | recordType
+    | typeReference
+    ;
+    
+tupleType 
+    : '(' (unionType (',' unionType)*)? ')' 
+    -> ^(TUPLE_TYPE unionType*) 
+    ;
+
+recordType 
+    : '{' (component (',' component)*)? '}' 
+    -> ^(RECORD_TYPE component*)
+    ;
+
+component 
+    : ID ':' unionType 
+    -> ^(TYPE_COMPONENT ID unionType) 
+    ;
+
+typeReference 
+    : ID ('(' parameter (',' parameter)* ')')? 
+    -> ^(TYPE_REFERENCE ID parameter*)
+    ;
+
+parameter 
+    : ID '=' parameterValue -> ^(TYPE_ANNOTATION ID parameterValue)
+    | unionType 
+    ;
+
+parameterValue 
+    : string
+    | boolean
+    | number
+    | ('[' | '(') range (']' | ')')
+    ;
+    
+range
+    : number
+    | number '..'
+    | '..' number 
+    | number '..' number
+    ;    
+    
+number
+    : INT
+    | FLOAT
+    ;
+
+string
+    : STRING
+    ;
+    
+boolean
+    : 'true'
+    | 'false'
+    ;
+
+/* -----------------------------------------------------------
+   VALUE DEFINITIONS    
+   ----------------------------------------------------------- */
+
+valueDefinitions : valueDefinition* -> ^(VALUE_DEFINITIONS valueDefinition*);
+
+valueDefinition 
+    : ID ':' unionType '=' value
+    -> ^(VALUE_DEFINITION ID unionType value) 
+    ;
+
+value 
+    : (basicValue -> basicValue)
+      (':' type -> ^(VARIANT type $value))* 
+    ;
+
+basicValue 
+    : 'null' -> NO_VALUE
+    | string
+    | number
+    | boolean
+    | array
+    | tuple
+    | taggedValue
+    | map
+    | record
+    ;
+
+array 
+    : '[' (value (',' value)*)? ']'
+    -> ^(ARRAY value*) 
+    ;
+
+tuple 
+    : '(' (value (',' value)*)? ')'
+    -> ^(TUPLE value*) 
+    ;
+
+taggedValue 
+    : ID basicValue
+    -> ^(TAGGED_VALUE ID basicValue) 
+    ;
+
+record 
+    : '{' (recordAssignment (',' recordAssignment)*)? '}'
+    -> ^(RECORD recordAssignment*) 
+    ;
+
+recordAssignment 
+    : ID '=' value
+    -> ^(ASSIGNMENT ID value)
+    ;
+
+map : 'map' '{' (mapAssignment (',' mapAssignment)*)? '}'
+    -> ^(MAP mapAssignment*) 
+    ;
+
+mapAssignment 
+    : value '=' value
+    -> ^(ASSIGNMENT value*) 
     ;
\ No newline at end of file