forked from paulo-pagliosa/Ds
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgrammar.txt
146 lines (114 loc) · 1.87 KB
/
grammar.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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
Start:
Preamble
Scene?
EOF
Preamble:
(Include | Declaration | Material)*
Include:
INCLUDE Filename
Filename:
STRING
Declaration:
DEFINE NAME "="? Initializer
Initializer:
Expression
Material:
MATERIAL STRING
"{"
MaterialItem*
"}"
MaterialItem:
AMBIENT Color
| DIFFUSE Color
| SPOT Color
| SHINE Float
| SPECULAR Color
| IOR Float
| TRANSPARENCY Color
Color:
Expression
Float:
Expression
Scene:
SCENE STRING?
"{"
Declaration*
Environment?
ObjectBlock
"}"
Environment:
ENVIRONMENT "{" EnvironmentItem* "}"
EnvironmentItem:
AMBIENT Color
| BACKGROUND Color
ObjectBlock:
(Object | Declaration)* "}"
Object:
OBJECT STRING? ("{" ChildObjectBlock | Component)
ChildObjectBlock:
Declaration*
Transform?
Component*
ObjectBlock
Transform:
TRANSFORM "{" TransformItem* "}"
TransformItem:
POSITION Vec3
| ROTATION Vec3
| SCALE Vec3
Vec3:
Expression
Component:
Camera
| Light
| Primitive
Camera:
CAMERA "{" ProjectionType? CameraItem* "}"
ProjectionType:
PARALLEL
| PERSPECTIVE
CameraItem:
ASPECT Float
| ANGLE Float
| HEIGHT Float
| DEPTH Vec2
Vec2:
Expression
Light:
LIGHT "{" LightType LightItem* "}"
LightType:
POINT
| DIRECTIONAL
| SPOT
LightItem:
COLOR Color
| RANGE Float
| ANGLE Float
| FALLOFF Integer
Integer:
Expression
Primitive:
Mesh (MATERIAL STRING)?
Mesh:
| MESH STRING
Expression:
Term ("+" Term | "-" Term)*
Term:
Factor ("*" Factor | "/" Factor)*
Factor:
"(" Expression ")"
| "+" Expression
| "-" Expression
| NAME
| INTEGER
| FLOAT
| RGB "(" Float "," Float "," Float ")"
| "<" Float "," Float "," Float ">"
| VEC2 "(" Float "," Float ")"
| VEC3 "(" Float "," Float "," Float ")"
| VEC4 "(" Float "," Float "," Float "," Float ")"
| LENGTH "(" Vec3 ")"
| NORMALIZE "(" Vec3 ")"
| DOT "(" Vec3 "," Vec3 ")"
| CROSS "(" Vec3 "," Vec3 ")"
| AXES "(" Vec3 "," Vec3 ")"