forked from Joined-Forces/klee
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgrammar-ueof.txt
28 lines (26 loc) · 1.24 KB
/
grammar-ueof.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// Composits
<ueof> := CLEAR* <object> SPACE* [ LINE+ SPACE* <object> SPACE* ]*
<object> := OBJECT-BEGIN SPACE+ NAME [ SPACE+ <attribute> ]* LINE+ [ SPACE* ( <custom> | <property> ) SPACE* LINE+ ]* SPACE* OBJECT-END SPACE+ NAME
<attribute> := [ <value> SPACE* SET SPACE* ] <value>
<property> := <attribute> [ SPACE+ <link> ]
<custom> := CUSTOM-BEGIN SPACE+ NAME SPACE* <tuple>
<value> := (( NAME | RAW ) @ ( STRING | <tuple> ))+
<tuple> := TUPLE-BEGIN SPACE* <property> [ SPACE* DELIM SPACE* [ <property> ] ]* SPACE* TUPLE-END
<link> := <property> [ SPACE+ <property> ]
// Tokens
CLEAR := '\x01'-'\x20'
SPACE := ' ' | '\t'
LINE := '\n'-'\r'
SET := '='
DELIM := ','
TUPLE-BEGIN := '('
TUPLE-END := ')'
OBJECT-BEGIN := "Begin"
OBJECT-END := "End"
CUSTOM-BEGIN := "CustomProperty"
LITERAL := '\'' | '"' | '`'
_ALPHA := 'A'-'Z' | '0'-'9'
_DIGIT := '0'-'9'
STRING := LITERAL [ '\'%2 LITERAL | !LITERAL ]* LITERAL
NAME := _DIGIT! ( 'a'-'z' | _ALPHA | _DIGIT | '\\' | '/' | ':' | '-'-'.' | '_' )
RAW := ( '\x00' | CLEAR | SET | DELIM | LITERAL | TUPLE-BEGIN | TUPLE-END | '\x7f' )!