Changeset 460:56245201e451 in livinglogic.java.ul4
 Timestamp:
 03/29/12 15:34:57 (7 years ago)
 Author:
 Walter Doerwald <walter@…>
 Branch:
 default
 Message:

Reformat grammar.
 Files:

Legend:
 Unmodified
 Added
 Removed

r459

r460


10  10  @header 
11  11  { 
12   package com.livinglogic.ul4; 
 12  package com.livinglogic.ul4; 
13  13  } 
14  14  
15   NONE : 'None'; 
 15  NONE 
 16  : 'None' 
 17  ; 
16  18  
17   TRUE : 'True'; 
 19  TRUE 
 20  : 'True' 
 21  ; 
18  22  
19   FALSE : 'False'; 
 23  FALSE 
 24  : 'False' 
 25  ; 
20  26  
21   NAME : ('a'..'z''A'..'Z''_') ('a'..'z''A'..'Z''0'..'9''_')* 
22   ; 
 27  NAME 
 28  : ('a'..'z''A'..'Z''_') ('a'..'z''A'..'Z''0'..'9''_')* 
 29  ; 
23  30  
24  31  fragment 
25   DIGIT : '0'..'9' 
 32  DIGIT 
 33  : '0'..'9' 
26  34  ; 
27  35  
28  36  fragment 
29  37  BIN_DIGIT 
30   : ('0''1') 
31   ; 
32   fragment 
33   OCT_DIGIT 
34   : '0'..'7' 
 38  : ('0''1') 
35  39  ; 
36  40  
37  41  fragment 
38   HEX_DIGIT : ('0'..'9''a'..'f''A'..'F') 
39   ; 
 42  OCT_DIGIT 
 43  : '0'..'7' 
 44  ; 
40  45  
41   INT : DIGIT+ 
 46  fragment 
 47  HEX_DIGIT 
 48  : ('0'..'9''a'..'f''A'..'F') 
 49  ; 
 50  
 51  INT 
 52  : DIGIT+ 
42  53   '0' ('b''B') BIN_DIGIT+ 
43  54   '0' ('o''O') OCT_DIGIT+ 
44  55   '0' ('x''X') HEX_DIGIT+ 
45   ; 
 56  ; 
46  57  
47  58  FLOAT 
48   : DIGIT+ '.' DIGIT* EXPONENT? 
49    '.' DIGIT+ EXPONENT? 
50    DIGIT+ EXPONENT 
51   ; 
 59  : DIGIT+ '.' DIGIT* EXPONENT? 
 60   '.' DIGIT+ EXPONENT? 
 61   DIGIT+ EXPONENT 
 62  ; 
52  63  
53  64  fragment 
54   TIME : DIGIT DIGIT ':' DIGIT DIGIT (':' DIGIT DIGIT('.' DIGIT DIGIT DIGIT DIGIT DIGIT DIGIT)?)?; 
 65  TIME 
 66  : DIGIT DIGIT ':' DIGIT DIGIT (':' DIGIT DIGIT('.' DIGIT DIGIT DIGIT DIGIT DIGIT DIGIT)?)?; 
55  67  
56   DATE : '@' DIGIT DIGIT DIGIT DIGIT '' DIGIT DIGIT '' DIGIT DIGIT 'T' TIME?; 
 68  DATE 
 69  : '@' DIGIT DIGIT DIGIT DIGIT '' DIGIT DIGIT '' DIGIT DIGIT 'T' TIME?; 
57  70  
58   COLOR : '#' HEX_DIGIT HEX_DIGIT HEX_DIGIT 
59    '#' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT 
60    '#' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT 
61    '#' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT 
 71  COLOR 
 72  : '#' HEX_DIGIT HEX_DIGIT HEX_DIGIT 
 73   '#' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT 
 74   '#' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT 
 75   '#' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT 
62  76  ; 
63  77  
64   WS : ( ' ' 
65    '\t' 
66    '\r' 
67    '\n' 
68   ) {$channel=HIDDEN;} 
69   ; 
 78  WS 
 79  : (' ''\t''\r''\n') { $channel=HIDDEN; } 
 80  ; 
70  81  
71  82  STRING 
72   : '"' ( ESC_SEQ  ~('\\''"') )* '"' 
73    '\'' ( ESC_SEQ  ~('\\''\'') )* '\'' 
74   ; 
 83  : '"' ( ESC_SEQ  ~('\\''"') )* '"' 
 84   '\'' ( ESC_SEQ  ~('\\''\'') )* '\'' 
 85  ; 
75  86  
76  87  fragment 
77   EXPONENT : ('e''E') ('+''')? DIGIT+ ; 
 88  EXPONENT 
 89  : ('e''E') ('+''')? DIGIT+ 
 90  ; 
78  91  
79  92  fragment 
80  93  ESC_SEQ 
81   : '\\' ('a''b''e''t''n''f''r''\"''\'''\\') 
82    UNICODE1_ESC 
83    UNICODE2_ESC 
84    UNICODE4_ESC 
85   ; 
 94  : '\\' ('a''b''e''t''n''f''r''\"''\'''\\') 
 95   UNICODE1_ESC 
 96   UNICODE2_ESC 
 97   UNICODE4_ESC 
 98  ; 
86  99  
87  100  fragment 
88  101  UNICODE1_ESC 
89   : '\\' 'x' HEX_DIGIT HEX_DIGIT 
90   ; 
 102  : '\\' 'x' HEX_DIGIT HEX_DIGIT 
 103  ; 
91  104  
92  105  fragment 
93  106  UNICODE2_ESC 
94   : '\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT 
95   ; 
 107  : '\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT 
 108  ; 
96  109  
97  110  fragment 
98  111  UNICODE4_ESC 
99   : '\\' 'U' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT 
100   ; 
 112  : '\\' 'U' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT 
 113  ; 
101  114  
102   parse : atom; 
 115  parse 
 116  : atom; 
103  117  
104  118  atom 
105   : NONE 
106    FALSE 
107    TRUE 
108    NAME 
109    INT 
110    STRING 
111    DATE 
112    COLOR 
113   ; 
 119  : NONE 
 120   FALSE 
 121   TRUE 
 122   NAME 
 123   INT 
 124   STRING 
 125   DATE 
 126   COLOR 
 127  ; 
114  128  
115   expr : atom  list; 
 129  expr 
 130  : atom 
 131   list; 
116  132  
117   list : '[' (expr ',')* ']' 
118    '[' (expr ',')* expr ']' 
 133  list 
 134  : '[' WS* ']' 
 135   '[' expr (',' expr)* ']' 
119  136  ; 