Skip to content

Commit aaa6ac8

Browse files
committed
finalize TypeParser grammar
1 parent 3dc77d7 commit aaa6ac8

File tree

3 files changed

+95
-64
lines changed

3 files changed

+95
-64
lines changed

doc/grammars/type.abnf

+95
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
; ---------------------------------------------------------------------------- ;
2+
; Type ;
3+
; ---------------------------------------------------------------------------- ;
4+
5+
Type
6+
= Atomic [Union / Intersection]
7+
/ Nullable
8+
9+
Union
10+
= 1*(TokenUnion Atomic)
11+
12+
Intersection
13+
= 1*(TokenIntersection Atomic)
14+
15+
Nullable
16+
= TokenNullable TokenIdentifier [Generic]
17+
18+
Atomic
19+
= TokenIdentifier [Generic / Array]
20+
/ TokenThisVariable
21+
/ TokenParenthesesOpen Type TokenParenthesesClose [Array]
22+
23+
Generic
24+
= TokenAngleBracketOpen Type *(TokenComma Type) TokenAngleBracketClose
25+
26+
Array
27+
= 1*(TokenSquareBracketOpen TokenSquareBracketClose)
28+
29+
30+
; ---------------------------------------------------------------------------- ;
31+
; Tokens ;
32+
; ---------------------------------------------------------------------------- ;
33+
34+
TokenUnion
35+
= "|" *ByteHorizontalWs
36+
37+
TokenIntersection
38+
= "&" *ByteHorizontalWs
39+
40+
TokenNullable
41+
= "?" *ByteHorizontalWs
42+
43+
TokenParenthesesOpen
44+
= "(" *ByteHorizontalWs
45+
46+
TokenParenthesesClose
47+
= ")" *ByteHorizontalWs
48+
49+
TokenAngleBracketOpen
50+
= "<" *ByteHorizontalWs
51+
52+
TokenAngleBracketClose
53+
= ">" *ByteHorizontalWs
54+
55+
TokenSquareBracketOpen
56+
= "[" *ByteHorizontalWs
57+
58+
TokenSquareBracketClose
59+
= "]" *ByteHorizontalWs
60+
61+
TokenComma
62+
= "," *ByteHorizontalWs
63+
64+
TokenThisVariable
65+
= %x24.74.68.69.73 *ByteHorizontalWs
66+
67+
TokenIdentifier
68+
= [ByteBackslash] ByteIdentifierFirst *ByteIdentifierSecond *(ByteBackslash ByteIdentifierFirst *ByteIdentifierSecond) *ByteHorizontalWs
69+
70+
71+
; ---------------------------------------------------------------------------- ;
72+
; Bytes ;
73+
; ---------------------------------------------------------------------------- ;
74+
75+
ByteHorizontalWs
76+
= %x09 ; horizontal tab
77+
/ %x20 ; space
78+
79+
80+
ByteIdentifierFirst
81+
= %x41-5A ; A-Z
82+
/ %x5F ; _
83+
/ %x61-7A ; a-z
84+
/ %x80-FF
85+
86+
ByteIdentifierSecond
87+
= %x30-39 ; 0-9
88+
/ %x41-5A ; A-Z
89+
/ %x5F ; _
90+
/ %x61-7A ; a-z
91+
/ %x80-FF
92+
93+
94+
ByteBackslash
95+
= %x5C ; \

doc/grammars/type.ebnf

-32
This file was deleted.

doc/grammars/type.peg

-32
This file was deleted.

0 commit comments

Comments
 (0)