SceneSetup : Added ClearColor command EZMesh : Added Dup[ ... ] command && cgs command syntax refactor MViewer : Tweak & dictionnary.js updatesundefined
@@ -38,6 +38,7 @@ | |||||
bool bval; | bool bval; | ||||
float vval[4]; | float vval[4]; | ||||
int ivval[4]; | int ivval[4]; | ||||
char* lval; | |||||
/* Can't use uin32_t here for some reason */ | /* Can't use uin32_t here for some reason */ | ||||
unsigned u32val; | unsigned u32val; | ||||
} | } | ||||
@@ -50,6 +51,7 @@ | |||||
%token T_TRANSLATEY T_ROTATEY T_TAPERY T_TWISTY T_SHEARY T_STRETCHY T_BENDYX T_BENDYZ T_SCALEY T_MIRRORY | %token T_TRANSLATEY T_ROTATEY T_TAPERY T_TWISTY T_SHEARY T_STRETCHY T_BENDYX T_BENDYZ T_SCALEY T_MIRRORY | ||||
%token T_TRANSLATEZ T_ROTATEZ T_TAPERZ T_TWISTZ T_SHEARZ T_STRETCHZ T_BENDZX T_BENDZY T_SCALEZ T_MIRRORZ | %token T_TRANSLATEZ T_ROTATEZ T_TAPERZ T_TWISTZ T_SHEARZ T_STRETCHZ T_BENDZX T_BENDZY T_SCALEZ T_MIRRORZ | ||||
%token T_TRANSLATE T_ROTATE T_SCALE T_TOGGLESCALEWINDING T_RADIALJITTER T_SPLITTRIANGLE T_SMOOTHMESH | %token T_TRANSLATE T_ROTATE T_SCALE T_TOGGLESCALEWINDING T_RADIALJITTER T_SPLITTRIANGLE T_SMOOTHMESH | ||||
%token T_DUPLICATE | |||||
%token T_CSGUNION T_CSGSUBSTRACT T_CSGSUBSTRACTLOSS T_CSGAND T_CSGXOR | %token T_CSGUNION T_CSGSUBSTRACT T_CSGSUBSTRACTLOSS T_CSGAND T_CSGXOR | ||||
%token T_CHAMFER | %token T_CHAMFER | ||||
@@ -103,30 +105,35 @@ mesh_expression: | |||||
mesh_command_list: | mesh_command_list: | ||||
mesh_command | mesh_command | ||||
| mesh_command_list mesh_command | |||||
| mesh_command mesh_command_list | |||||
; | ; | ||||
mesh_command: | mesh_command: | ||||
color_command | color_command | ||||
| transform_command | | transform_command | ||||
| primitive_command | | primitive_command | ||||
| csg_command | |||||
| post_brace_command | |||||
| pre_brace_command '[' mesh_expression_list mesh_close | |||||
; | ; | ||||
csg_command: | |||||
T_CSGUNION { mc.m_mesh.CsgUnion(); } | |||||
| T_CSGSUBSTRACT { mc.m_mesh.CsgSubstract(); } | |||||
| T_CSGSUBSTRACTLOSS { mc.m_mesh.CsgSubstractLoss(); } | |||||
| T_CSGAND { mc.m_mesh.CsgAnd(); } | |||||
| T_CSGXOR { mc.m_mesh.CsgXor(); } | |||||
post_brace_command: | |||||
T_CSGUNION mesh_open mesh_expression_list ']' { mc.m_mesh.CsgUnion(); mc.m_mesh.CloseBrace(); } | |||||
| T_CSGSUBSTRACT mesh_open mesh_expression_list ']' { mc.m_mesh.CsgSub(); mc.m_mesh.CloseBrace(); } | |||||
| T_CSGSUBSTRACTLOSS mesh_open mesh_expression_list ']' { mc.m_mesh.CsgSubL(); mc.m_mesh.CloseBrace(); } | |||||
| T_CSGAND mesh_open mesh_expression_list ']' { mc.m_mesh.CsgAnd(); mc.m_mesh.CloseBrace(); } | |||||
| T_CSGXOR mesh_open mesh_expression_list ']' { mc.m_mesh.CsgXor(); mc.m_mesh.CloseBrace(); } | |||||
; | |||||
pre_brace_command: | |||||
T_DUPLICATE { mc.m_mesh.DupAndScale(vec3::one, true); } | |||||
; | ; | ||||
mesh_open: | mesh_open: | ||||
'[' { mc.m_mesh.OpenBrace(); } | |||||
'[' { mc.m_mesh.OpenBrace(); } | |||||
; | ; | ||||
mesh_close: | mesh_close: | ||||
']' { mc.m_mesh.CloseBrace(); } | |||||
']' { mc.m_mesh.CloseBrace(); } | |||||
; | ; | ||||
color_command: | color_command: | ||||
@@ -48,8 +48,8 @@ typedef lol::EasyMeshParser::token_type token_type; | |||||
%} | %} | ||||
(csgu|csgunion) { return token::T_CSGUNION; } | (csgu|csgunion) { return token::T_CSGUNION; } | ||||
(csgs|csgsubstract) { return token::T_CSGSUBSTRACT; } | |||||
(csgsl|csgsubstractloss) { return token::T_CSGSUBSTRACTLOSS; } | |||||
(csgs|CsgSub) { return token::T_CSGSUBSTRACT; } | |||||
(csgsl|CsgSubL) { return token::T_CSGSUBSTRACTLOSS; } | |||||
(csga|csgand) { return token::T_CSGAND; } | (csga|csgand) { return token::T_CSGAND; } | ||||
(csgx|csgxor) { return token::T_CSGXOR; } | (csgx|csgxor) { return token::T_CSGXOR; } | ||||
@@ -94,6 +94,7 @@ typedef lol::EasyMeshParser::token_type token_type; | |||||
(ch|chamfer) { return token::T_CHAMFER; } | (ch|chamfer) { return token::T_CHAMFER; } | ||||
(splt|splittriangle) { return token::T_SPLITTRIANGLE; } | (splt|splittriangle) { return token::T_SPLITTRIANGLE; } | ||||
(smth|smooth) { return token::T_SMOOTHMESH; } | (smth|smooth) { return token::T_SMOOTHMESH; } | ||||
(dup|duplicate) { return token::T_DUPLICATE; } | |||||
(ac|addcylinder) { return token::T_CYLINDER; } | (ac|addcylinder) { return token::T_CYLINDER; } | ||||
(asph|addsphere) { return token::T_SPHERE; } | (asph|addsphere) { return token::T_SPHERE; } | ||||
@@ -151,8 +152,10 @@ false { yylval->bval = false; return token::BOOLEAN; } | |||||
"-" { return token_type('-'); } | "-" { return token_type('-'); } | ||||
"(" { return token_type('('); } | "(" { return token_type('('); } | ||||
")" { return token_type(')'); } | ")" { return token_type(')'); } | ||||
"[" { return token_type('['); } | |||||
"]" { return token_type(']'); } | |||||
"{" { return token_type('{'); } | |||||
"}" { return token_type('}'); } | |||||
[\[] { return token_type('['); } | |||||
[\]] { return token_type(']'); } | |||||
[ ,] { /* ignore this */ } | [ ,] { /* ignore this */ } | ||||
[\n] { /* ignore this */ } | [\n] { /* ignore this */ } | ||||
. { return token::T_ERROR; } | . { return token::T_ERROR; } | ||||
@@ -787,11 +787,11 @@ void EasyMesh::MeshCsg(CSGUsage csg_operation) | |||||
//Triangle Kill Test | //Triangle Kill Test | ||||
if (//csgu : CSGUnion() -> m0_Outside + m1_Outside | if (//csgu : CSGUnion() -> m0_Outside + m1_Outside | ||||
(csg_operation == CSGUsage::Union && tri_list[k].m1 == LEAF_BACK) || | (csg_operation == CSGUsage::Union && tri_list[k].m1 == LEAF_BACK) || | ||||
//csgs : CSGSubstract() -> m0_Outside + m1_Inside-inverted | |||||
//csgs : CsgSub() -> m0_Outside + m1_Inside-inverted | |||||
(csg_operation == CSGUsage::Substract && | (csg_operation == CSGUsage::Substract && | ||||
((mesh_id == 0 && tri_list[k].m1 == LEAF_BACK) || | ((mesh_id == 0 && tri_list[k].m1 == LEAF_BACK) || | ||||
(mesh_id == 1 && tri_list[k].m1 == LEAF_FRONT))) || | (mesh_id == 1 && tri_list[k].m1 == LEAF_FRONT))) || | ||||
//csgs : CSGSubstractLoss() -> m0_Outside | |||||
//csgs : CsgSubL() -> m0_Outside | |||||
(csg_operation == CSGUsage::SubstractLoss && | (csg_operation == CSGUsage::SubstractLoss && | ||||
((mesh_id == 0 && tri_list[k].m1 == LEAF_BACK) || mesh_id == 1)) || | ((mesh_id == 0 && tri_list[k].m1 == LEAF_BACK) || mesh_id == 1)) || | ||||
//csga : CSGAnd() -> m0_Inside + m1_Inside | //csga : CSGAnd() -> m0_Inside + m1_Inside | ||||
@@ -801,7 +801,7 @@ void EasyMesh::MeshCsg(CSGUsage csg_operation) | |||||
} | } | ||||
//Triangle Invert Test | //Triangle Invert Test | ||||
if (//csgs : CSGSubstract() -> m0_Outside + m1_Inside-inverted | |||||
if (//csgs : CsgSub() -> m0_Outside + m1_Inside-inverted | |||||
(csg_operation == CSGUsage::Substract && mesh_id == 1 && tri_list[k].m1 == LEAF_BACK) || | (csg_operation == CSGUsage::Substract && mesh_id == 1 && tri_list[k].m1 == LEAF_BACK) || | ||||
//csgx : CSGXor() -> m0_Outside/m0_Inside-inverted + m1_Outside/m1_Inside-inverted | //csgx : CSGXor() -> m0_Outside/m0_Inside-inverted + m1_Outside/m1_Inside-inverted | ||||
(csg_operation == CSGUsage::Xor && tri_list[k].m1 == LEAF_BACK)) | (csg_operation == CSGUsage::Xor && tri_list[k].m1 == LEAF_BACK)) | ||||
@@ -1364,7 +1364,7 @@ void EasyMesh::MirrorY() { DupAndScale(vec3(1, -1, 1)); } | |||||
void EasyMesh::MirrorZ() { DupAndScale(vec3(1, 1, -1)); } | void EasyMesh::MirrorZ() { DupAndScale(vec3(1, 1, -1)); } | ||||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
void EasyMesh::DupAndScale(vec3 const &s) | |||||
void EasyMesh::DupAndScale(vec3 const &s, bool open_brace) | |||||
{ | { | ||||
int vlen = m_vert.Count() - m_cursors.Last().m1; | int vlen = m_vert.Count() - m_cursors.Last().m1; | ||||
int tlen = m_indices.Count() - m_cursors.Last().m2; | int tlen = m_indices.Count() - m_cursors.Last().m2; | ||||
@@ -1379,6 +1379,14 @@ void EasyMesh::DupAndScale(vec3 const &s) | |||||
m_cursors.Last().m1 -= vlen; | m_cursors.Last().m1 -= vlen; | ||||
m_cursors.Last().m2 -= tlen; | m_cursors.Last().m2 -= tlen; | ||||
if (open_brace) | |||||
{ | |||||
OpenBrace(); | |||||
m_cursors.Last().m1 -= vlen; | |||||
m_cursors.Last().m2 -= tlen; | |||||
} | |||||
} | } | ||||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
@@ -553,9 +553,9 @@ public: | |||||
/* [cmd:csgu] Performs a Union operation as (mesh0_Outside + mesh1_Outside) */ | /* [cmd:csgu] Performs a Union operation as (mesh0_Outside + mesh1_Outside) */ | ||||
void CsgUnion() { MeshCsg(CSGUsage::Union); } | void CsgUnion() { MeshCsg(CSGUsage::Union); } | ||||
/* [cmd:csgs] Performs a Substract operation as (mesh0_Outside + mesh1_Inside-inverted) */ | /* [cmd:csgs] Performs a Substract operation as (mesh0_Outside + mesh1_Inside-inverted) */ | ||||
void CsgSubstract() { MeshCsg(CSGUsage::Substract); } | |||||
void CsgSub() { MeshCsg(CSGUsage::Substract); } | |||||
/* [cmd:csgsl] Performs a Substract operation without keeping the mesh1 part */ | /* [cmd:csgsl] Performs a Substract operation without keeping the mesh1 part */ | ||||
void CsgSubstractLoss() { MeshCsg(CSGUsage::SubstractLoss); } | |||||
void CsgSubL() { MeshCsg(CSGUsage::SubstractLoss); } | |||||
/* [cmd:csga] Performs an And operation as (mesh0_Inside + mesh1_Inside) */ | /* [cmd:csga] Performs an And operation as (mesh0_Inside + mesh1_Inside) */ | ||||
void CsgAnd() { MeshCsg(CSGUsage::And); } | void CsgAnd() { MeshCsg(CSGUsage::And); } | ||||
/* [cmd:csgx] Performs a Xor operation as (m0_Outside/m0_Inside-inverted + m1_Outside/m1_Inside-inverted) */ | /* [cmd:csgx] Performs a Xor operation as (m0_Outside/m0_Inside-inverted + m1_Outside/m1_Inside-inverted) */ | ||||
@@ -722,7 +722,7 @@ public: | |||||
/* [no-cmd] Duplicates vertices and scale duplicate | /* [no-cmd] Duplicates vertices and scale duplicate | ||||
Acts as an OpenBrace | Acts as an OpenBrace | ||||
*/ | */ | ||||
void DupAndScale(vec3 const &s); | |||||
void DupAndScale(vec3 const &s, bool open_brace=false); | |||||
/* [cmd:ch] Performs a chamfer operation //TODO : Make it work | /* [cmd:ch] Performs a chamfer operation //TODO : Make it work | ||||
- f : Chamfer quantity. | - f : Chamfer quantity. | ||||
*/ | */ | ||||
@@ -116,13 +116,14 @@ namespace lol { | |||||
bool bval; | bool bval; | ||||
float vval[4]; | float vval[4]; | ||||
int ivval[4]; | int ivval[4]; | ||||
char* lval; | |||||
/* Can't use uin32_t here for some reason */ | /* Can't use uin32_t here for some reason */ | ||||
unsigned u32val; | unsigned u32val; | ||||
/* Line 34 of lalr1.cc */ | /* Line 34 of lalr1.cc */ | ||||
#line 126 "generated/easymesh-parser.h" | |||||
#line 127 "generated/easymesh-parser.h" | |||||
}; | }; | ||||
#else | #else | ||||
typedef YYSTYPE semantic_type; | typedef YYSTYPE semantic_type; | ||||
@@ -174,30 +175,31 @@ namespace lol { | |||||
T_RADIALJITTER = 294, | T_RADIALJITTER = 294, | ||||
T_SPLITTRIANGLE = 295, | T_SPLITTRIANGLE = 295, | ||||
T_SMOOTHMESH = 296, | T_SMOOTHMESH = 296, | ||||
T_CSGUNION = 297, | |||||
T_CSGSUBSTRACT = 298, | |||||
T_CSGSUBSTRACTLOSS = 299, | |||||
T_CSGAND = 300, | |||||
T_CSGXOR = 301, | |||||
T_CHAMFER = 302, | |||||
T_CYLINDER = 303, | |||||
T_BOX = 304, | |||||
T_SMOOTHCHAMFBOX = 305, | |||||
T_FLATCHAMFBOX = 306, | |||||
T_SPHERE = 307, | |||||
T_CAPSULE = 308, | |||||
T_STAR = 309, | |||||
T_EXPANDEDSTAR = 310, | |||||
T_DISC = 311, | |||||
T_TRIANGLE = 312, | |||||
T_QUAD = 313, | |||||
T_COG = 314, | |||||
T_TORUS = 315, | |||||
T_ERROR = 316, | |||||
F_NUMBER = 317, | |||||
I_NUMBER = 318, | |||||
BOOLEAN = 319, | |||||
COLOR = 320 | |||||
T_DUPLICATE = 297, | |||||
T_CSGUNION = 298, | |||||
T_CSGSUBSTRACT = 299, | |||||
T_CSGSUBSTRACTLOSS = 300, | |||||
T_CSGAND = 301, | |||||
T_CSGXOR = 302, | |||||
T_CHAMFER = 303, | |||||
T_CYLINDER = 304, | |||||
T_BOX = 305, | |||||
T_SMOOTHCHAMFBOX = 306, | |||||
T_FLATCHAMFBOX = 307, | |||||
T_SPHERE = 308, | |||||
T_CAPSULE = 309, | |||||
T_STAR = 310, | |||||
T_EXPANDEDSTAR = 311, | |||||
T_DISC = 312, | |||||
T_TRIANGLE = 313, | |||||
T_QUAD = 314, | |||||
T_COG = 315, | |||||
T_TORUS = 316, | |||||
T_ERROR = 317, | |||||
F_NUMBER = 318, | |||||
I_NUMBER = 319, | |||||
BOOLEAN = 320, | |||||
COLOR = 321 | |||||
}; | }; | ||||
}; | }; | ||||
@@ -371,7 +373,7 @@ namespace lol { | |||||
} // lol | } // lol | ||||
/* Line 34 of lalr1.cc */ | /* Line 34 of lalr1.cc */ | ||||
#line 375 "generated/easymesh-parser.h" | |||||
#line 377 "generated/easymesh-parser.h" | |||||
@@ -330,8 +330,8 @@ typedef unsigned char YY_CHAR; | |||||
*yy_cp = '\0'; \ | *yy_cp = '\0'; \ | ||||
(yy_c_buf_p) = yy_cp; | (yy_c_buf_p) = yy_cp; | ||||
#define YY_NUM_RULES 76 | |||||
#define YY_END_OF_BUFFER 77 | |||||
#define YY_NUM_RULES 79 | |||||
#define YY_END_OF_BUFFER 80 | |||||
/* This struct is not used in this scanner, | /* This struct is not used in this scanner, | ||||
but its presence is necessary. */ | but its presence is necessary. */ | ||||
struct yy_trans_info | struct yy_trans_info | ||||
@@ -339,42 +339,43 @@ struct yy_trans_info | |||||
flex_int32_t yy_verify; | flex_int32_t yy_verify; | ||||
flex_int32_t yy_nxt; | flex_int32_t yy_nxt; | ||||
}; | }; | ||||
static yyconst flex_int16_t yy_accept[306] = | |||||
static yyconst flex_int16_t yy_accept[312] = | |||||
{ 0, | { 0, | ||||
0, 0, 77, 75, 74, 73, 75, 69, 70, 75, | |||||
68, 75, 75, 66, 71, 72, 75, 75, 75, 75, | |||||
75, 16, 39, 12, 0, 0, 66, 65, 67, 50, | |||||
46, 55, 0, 0, 57, 53, 56, 0, 0, 43, | |||||
0, 0, 0, 40, 41, 42, 0, 17, 0, 13, | |||||
14, 15, 7, 0, 0, 0, 0, 0, 36, 37, | |||||
38, 0, 0, 0, 0, 9, 10, 11, 0, 0, | |||||
67, 0, 58, 0, 54, 0, 0, 0, 49, 0, | |||||
0, 0, 80, 78, 77, 76, 78, 70, 71, 78, | |||||
69, 78, 78, 67, 78, 74, 75, 78, 78, 78, | |||||
78, 78, 78, 16, 39, 12, 72, 73, 0, 0, | |||||
67, 66, 68, 0, 51, 47, 56, 0, 0, 58, | |||||
54, 57, 0, 0, 43, 0, 0, 0, 0, 40, | |||||
41, 42, 0, 17, 0, 13, 14, 15, 7, 0, | |||||
0, 0, 0, 0, 36, 37, 38, 0, 0, 0, | |||||
0, 9, 10, 11, 0, 0, 68, 0, 0, 59, | |||||
0, 55, 0, 0, 0, 50, 0, 0, 0, 0, | |||||
0, 0, 46, 0, 0, 0, 0, 0, 8, 0, | |||||
0, 24, 25, 26, 0, 0, 0, 0, 27, 28, | |||||
29, 0, 18, 19, 20, 0, 0, 6, 0, 21, | |||||
22, 23, 60, 0, 66, 0, 49, 0, 0, 0, | |||||
0, 0, 0, 0, 0, 53, 52, 48, 30, 31, | |||||
32, 33, 34, 35, 0, 0, 4, 2, 1, 5, | |||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||||
8, 0, 0, 24, 25, 26, 0, 0, 0, 0, | |||||
27, 28, 29, 0, 18, 19, 20, 0, 0, 6, | |||||
0, 21, 22, 23, 59, 0, 65, 48, 0, 0, | |||||
0, 0, 0, 0, 0, 0, 52, 51, 47, 30, | |||||
31, 32, 33, 34, 35, 0, 0, 4, 2, 1, | |||||
5, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||||
45, 0, 44, 0, 0, 0, 63, 0, 60, 0, | |||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||||
0, 0, 0, 0, 0, 0, 0, 3, 0, 0, | |||||
0, 64, 0, 0, 0, 39, 0, 0, 0, 0, | |||||
45, 0, 44, 0, 0, 0, 64, 0, 61, 0, | |||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||||
0, 0, 0, 0, 0, 0, 0, 0, 3, 0, | |||||
0, 0, 65, 0, 0, 0, 39, 0, 0, 0, | |||||
0, 0, 0, 0, 0, 0, 0, 0, 4, 0, | |||||
0, 5, 0, 0, 16, 0, 0, 0, 0, 0, | |||||
0, 61, 0, 0, 55, 0, 0, 0, 0, 53, | |||||
0, 0, 43, 0, 0, 0, 0, 0, 0, 0, | |||||
0, 0, 0, 0, 0, 0, 0, 2, 0, 0, | |||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||||
4, 0, 5, 0, 0, 0, 16, 0, 0, 0, | |||||
0, 0, 0, 62, 0, 0, 56, 0, 0, 0, | |||||
0, 54, 0, 0, 43, 0, 0, 0, 0, 0, | |||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||||
0, 1, 0, 0, 0, 7, 0, 0, 62, 0, | |||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 12, | |||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 46, | |||||
0, 0, 0, 56, 0, 0, 0, 0, 0, 0, | |||||
0, 2, 0, 0, 0, 0, 0, 0, 0, 0, | |||||
0, 0, 1, 0, 0, 0, 0, 7, 0, 0, | |||||
63, 0, 0, 0, 0, 0, 0, 46, 0, 0, | |||||
0, 12, 0, 0, 0, 0, 0, 0, 0, 0, | |||||
47, 0, 0, 0, 57, 0, 0, 0, 0, 0, | |||||
0, 0, 0, 0, 0 | |||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||||
0 | |||||
} ; | } ; | ||||
static yyconst flex_int32_t yy_ec[256] = | static yyconst flex_int32_t yy_ec[256] = | ||||
@@ -385,14 +386,14 @@ static yyconst flex_int32_t yy_ec[256] = | |||||
1, 3, 1, 1, 4, 1, 1, 1, 1, 5, | 1, 3, 1, 1, 4, 1, 1, 1, 1, 5, | ||||
6, 1, 7, 3, 8, 9, 10, 11, 11, 11, | 6, 1, 7, 3, 8, 9, 10, 11, 11, 11, | ||||
11, 11, 11, 11, 11, 11, 11, 1, 1, 1, | 11, 11, 11, 11, 11, 11, 11, 1, 1, 1, | ||||
1, 1, 1, 1, 12, 12, 12, 12, 13, 12, | |||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||||
14, 1, 15, 1, 1, 1, 16, 17, 18, 19, | |||||
20, 21, 22, 23, 24, 25, 1, 26, 27, 28, | |||||
29, 30, 31, 32, 33, 34, 35, 1, 36, 37, | |||||
38, 39, 1, 1, 1, 1, 1, 1, 1, 1, | |||||
1, 1, 1, 1, 12, 12, 13, 12, 14, 12, | |||||
1, 1, 1, 1, 1, 15, 1, 1, 1, 1, | |||||
1, 1, 16, 1, 1, 1, 1, 1, 1, 1, | |||||
17, 1, 18, 1, 1, 1, 19, 20, 21, 22, | |||||
23, 24, 25, 26, 27, 28, 1, 29, 30, 31, | |||||
32, 33, 34, 35, 36, 37, 38, 1, 39, 40, | |||||
41, 42, 43, 1, 44, 1, 1, 1, 1, 1, | |||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||||
@@ -409,190 +410,193 @@ static yyconst flex_int32_t yy_ec[256] = | |||||
1, 1, 1, 1, 1 | 1, 1, 1, 1, 1 | ||||
} ; | } ; | ||||
static yyconst flex_int32_t yy_meta[40] = | |||||
static yyconst flex_int32_t yy_meta[45] = | |||||
{ 0, | { 0, | ||||
1, 2, 1, 1, 1, 1, 1, 1, 1, 1, | 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, | ||||
3, 3, 3, 1, 1, 3, 3, 3, 3, 3, | |||||
3, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||||
1, 1, 1, 1, 1, 1, 1, 1, 1 | |||||
3, 3, 3, 3, 1, 1, 1, 1, 3, 3, | |||||
3, 3, 3, 3, 1, 1, 1, 1, 1, 1, | |||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||||
1, 1, 1, 1 | |||||
} ; | } ; | ||||
static yyconst flex_int16_t yy_base[315] = | |||||
static yyconst flex_int16_t yy_base[321] = | |||||
{ 0, | { 0, | ||||
0, 0, 378, 379, 379, 379, 0, 379, 379, 31, | |||||
32, 366, 366, 35, 379, 379, 30, 33, 22, 359, | |||||
30, 54, 76, 100, 0, 363, 47, 46, 0, 379, | |||||
49, 354, 339, 353, 379, 42, 341, 36, 341, 352, | |||||
345, 340, 333, 379, 379, 379, 345, 379, 329, 379, | |||||
379, 379, 60, 328, 70, 51, 335, 49, 379, 379, | |||||
379, 81, 62, 324, 88, 379, 379, 379, 0, 93, | |||||
0, 329, 379, 123, 379, 341, 340, 333, 379, 83, | |||||
45, 86, 336, 327, 112, 320, 320, 327, 334, 323, | |||||
379, 112, 332, 379, 379, 379, 318, 323, 71, 325, | |||||
379, 379, 379, 324, 379, 379, 379, 315, 322, 379, | |||||
308, 379, 379, 379, 0, 329, 328, 379, 309, 130, | |||||
313, 299, 309, 299, 121, 102, 379, 379, 379, 379, | |||||
379, 379, 379, 379, 379, 123, 312, 304, 63, 303, | |||||
301, 309, 299, 311, 292, 305, 306, 294, 290, 287, | |||||
379, 286, 379, 285, 286, 284, 379, 282, 0, 278, | |||||
284, 291, 286, 278, 280, 293, 292, 278, 283, 289, | |||||
272, 279, 114, 126, 129, 282, 282, 379, 283, 275, | |||||
266, 379, 265, 270, 275, 133, 265, 267, 136, 269, | |||||
257, 272, 139, 263, 142, 0, 255, 263, 268, 269, | |||||
250, 264, 253, 261, 248, 244, 262, 245, 379, 243, | |||||
246, 379, 145, 249, 148, 249, 246, 242, 238, 246, | |||||
252, 0, 232, 238, 379, 237, 246, 229, 230, 379, | |||||
228, 232, 379, 225, 230, 233, 228, 226, 222, 229, | |||||
151, 218, 0, 225, 231, 230, 225, 224, 226, 223, | |||||
212, 379, 209, 223, 209, 379, 224, 219, 379, 218, | |||||
217, 216, 219, 216, 207, 216, 197, 206, 201, 154, | |||||
196, 208, 199, 202, 204, 205, 202, 193, 198, 379, | |||||
186, 197, 201, 379, 182, 183, 192, 187, 178, 194, | |||||
183, 183, 188, 191, 177, 184, 175, 171, 165, 184, | |||||
167, 170, 165, 160, 379, 192, 161, 193, 155, 147, | |||||
132, 114, 99, 59 | |||||
0, 0, 385, 386, 386, 386, 0, 386, 386, 36, | |||||
37, 373, 373, 40, 346, 386, 386, 32, 35, 24, | |||||
343, 361, 32, 43, 65, 89, 386, 386, 0, 368, | |||||
52, 53, 0, 353, 386, 62, 355, 340, 354, 386, | |||||
44, 342, 38, 342, 353, 346, 337, 340, 333, 386, | |||||
386, 386, 345, 386, 329, 386, 386, 386, 70, 328, | |||||
59, 60, 335, 69, 386, 386, 386, 79, 75, 324, | |||||
76, 386, 386, 386, 0, 115, 0, 346, 328, 386, | |||||
112, 386, 340, 339, 332, 386, 73, 97, 100, 335, | |||||
326, 119, 326, 318, 318, 325, 332, 321, 386, 122, | |||||
330, 386, 386, 386, 316, 321, 117, 323, 386, 386, | |||||
386, 322, 386, 386, 386, 313, 320, 386, 306, 386, | |||||
386, 386, 0, 330, 329, 301, 386, 306, 126, 310, | |||||
296, 306, 296, 123, 61, 386, 386, 386, 386, 386, | |||||
386, 386, 386, 386, 110, 309, 301, 302, 299, 297, | |||||
301, 304, 294, 306, 287, 300, 301, 289, 285, 282, | |||||
386, 281, 386, 280, 281, 279, 386, 277, 0, 293, | |||||
272, 278, 285, 280, 272, 274, 287, 286, 272, 277, | |||||
283, 266, 273, 120, 123, 128, 276, 276, 386, 270, | |||||
261, 274, 386, 259, 264, 269, 131, 259, 261, 134, | |||||
263, 251, 266, 137, 257, 140, 0, 270, 248, 256, | |||||
261, 262, 243, 257, 246, 254, 241, 237, 255, 238, | |||||
386, 240, 386, 252, 143, 242, 146, 242, 239, 235, | |||||
231, 239, 245, 0, 225, 231, 386, 230, 239, 222, | |||||
223, 386, 221, 225, 386, 224, 217, 226, 221, 219, | |||||
215, 222, 149, 211, 0, 218, 224, 223, 218, 217, | |||||
219, 216, 386, 217, 202, 216, 202, 386, 217, 212, | |||||
386, 211, 210, 209, 212, 209, 200, 386, 191, 200, | |||||
195, 152, 190, 202, 193, 196, 198, 197, 188, 193, | |||||
386, 181, 192, 196, 386, 179, 188, 183, 174, 190, | |||||
179, 185, 188, 174, 181, 169, 163, 182, 169, 160, | |||||
386, 196, 195, 194, 193, 163, 161, 144, 124, 67 | |||||
} ; | } ; | ||||
static yyconst flex_int16_t yy_def[315] = | |||||
static yyconst flex_int16_t yy_def[321] = | |||||
{ 0, | { 0, | ||||
305, 1, 305, 305, 305, 305, 306, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 307, 305, 305, 305, 308, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 309, 305, | |||||
308, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 310, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 311, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 312, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 313, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 314, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 0, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305 | |||||
311, 1, 311, 311, 311, 311, 312, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 313, 311, | |||||
311, 311, 314, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 315, 311, 314, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 316, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 317, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 318, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 319, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 320, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
0, 311, 311, 311, 311, 311, 311, 311, 311, 311 | |||||
} ; | } ; | ||||
static yyconst flex_int16_t yy_nxt[419] = | |||||
static yyconst flex_int16_t yy_nxt[431] = | |||||
{ 0, | { 0, | ||||
4, 5, 6, 7, 8, 9, 10, 11, 12, 13, | 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, | ||||
14, 4, 4, 15, 16, 17, 18, 19, 4, 4, | |||||
20, 4, 4, 4, 4, 4, 21, 4, 4, 4, | |||||
4, 22, 23, 24, 4, 4, 4, 4, 4, 26, | |||||
26, 27, 27, 26, 40, 27, 30, 31, 32, 33, | |||||
34, 38, 39, 43, 41, 26, 28, 27, 70, 77, | |||||
35, 259, 36, 37, 72, 70, 44, 45, 46, 47, | |||||
73, 78, 80, 81, 82, 90, 91, 108, 48, 97, | |||||
100, 132, 49, 133, 98, 101, 102, 103, 178, 93, | |||||
50, 51, 52, 53, 152, 54, 109, 179, 55, 116, | |||||
116, 243, 56, 117, 153, 57, 94, 95, 96, 58, | |||||
104, 111, 59, 60, 61, 62, 222, 105, 106, 107, | |||||
130, 131, 134, 135, 112, 113, 114, 138, 147, 148, | |||||
171, 63, 64, 172, 196, 65, 66, 67, 68, 119, | |||||
120, 121, 122, 123, 139, 161, 140, 168, 141, 159, | |||||
169, 130, 131, 124, 170, 125, 126, 115, 162, 173, | |||||
174, 175, 132, 69, 133, 134, 135, 163, 216, 59, | |||||
60, 61, 94, 95, 96, 105, 106, 107, 112, 113, | |||||
114, 44, 45, 46, 50, 51, 52, 101, 102, 103, | |||||
66, 67, 68, 71, 25, 71, 128, 178, 304, 303, | |||||
302, 127, 75, 301, 300, 299, 298, 153, 297, 296, | |||||
295, 294, 293, 110, 48, 292, 291, 290, 289, 288, | |||||
287, 286, 285, 284, 283, 282, 281, 280, 279, 278, | |||||
277, 276, 275, 274, 273, 272, 271, 118, 270, 269, | |||||
91, 268, 267, 266, 265, 129, 264, 263, 262, 261, | |||||
260, 258, 257, 256, 255, 254, 253, 252, 251, 250, | |||||
79, 249, 248, 247, 246, 245, 244, 242, 241, 240, | |||||
239, 238, 237, 236, 235, 234, 233, 232, 231, 230, | |||||
229, 228, 35, 227, 226, 225, 224, 223, 221, 220, | |||||
219, 151, 218, 217, 215, 214, 213, 212, 211, 210, | |||||
209, 208, 207, 206, 205, 204, 203, 202, 201, 200, | |||||
199, 198, 73, 197, 30, 195, 194, 193, 192, 191, | |||||
190, 189, 188, 187, 186, 185, 184, 183, 182, 181, | |||||
180, 177, 176, 167, 166, 165, 164, 160, 117, 117, | |||||
158, 157, 156, 155, 154, 151, 150, 149, 146, 145, | |||||
144, 143, 142, 137, 136, 129, 128, 127, 118, 110, | |||||
99, 92, 89, 88, 87, 86, 85, 84, 83, 79, | |||||
76, 75, 74, 28, 42, 29, 28, 305, 3, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305 | |||||
14, 4, 15, 4, 4, 4, 16, 17, 18, 19, | |||||
20, 21, 4, 22, 4, 4, 4, 4, 4, 23, | |||||
4, 4, 4, 4, 24, 25, 26, 4, 4, 4, | |||||
4, 4, 27, 28, 30, 30, 31, 31, 30, 45, | |||||
31, 35, 36, 37, 38, 39, 43, 44, 49, 46, | |||||
30, 53, 31, 32, 84, 40, 76, 41, 42, 271, | |||||
54, 50, 51, 52, 55, 76, 85, 87, 88, 89, | |||||
79, 101, 56, 57, 58, 59, 80, 60, 98, 99, | |||||
61, 105, 182, 116, 62, 183, 106, 63, 102, 103, | |||||
104, 64, 119, 108, 65, 66, 67, 68, 109, 110, | |||||
111, 112, 117, 139, 140, 120, 121, 122, 113, 114, | |||||
115, 124, 124, 69, 70, 125, 255, 71, 72, 73, | |||||
74, 128, 129, 130, 131, 132, 141, 147, 142, 143, | |||||
144, 157, 158, 162, 172, 133, 234, 134, 135, 184, | |||||
185, 186, 179, 163, 148, 180, 149, 173, 150, 181, | |||||
139, 140, 141, 207, 142, 169, 174, 143, 144, 228, | |||||
65, 66, 67, 102, 103, 104, 113, 114, 115, 120, | |||||
121, 122, 50, 51, 52, 56, 57, 58, 109, 110, | |||||
111, 72, 73, 74, 77, 123, 77, 75, 29, 137, | |||||
310, 309, 136, 82, 308, 307, 306, 163, 305, 304, | |||||
303, 302, 118, 54, 301, 300, 299, 298, 297, 296, | |||||
295, 294, 293, 292, 291, 290, 289, 288, 287, 286, | |||||
285, 284, 283, 127, 282, 281, 99, 280, 279, 278, | |||||
277, 138, 276, 275, 274, 273, 272, 270, 269, 268, | |||||
267, 266, 265, 264, 263, 262, 86, 261, 260, 259, | |||||
258, 257, 256, 254, 253, 252, 251, 250, 249, 248, | |||||
247, 246, 245, 244, 243, 242, 241, 240, 40, 239, | |||||
238, 237, 236, 235, 189, 233, 232, 231, 161, 230, | |||||
229, 227, 226, 225, 224, 223, 222, 221, 220, 219, | |||||
218, 217, 216, 215, 214, 213, 212, 211, 210, 80, | |||||
209, 35, 208, 206, 205, 204, 203, 202, 201, 200, | |||||
199, 198, 197, 196, 195, 194, 193, 192, 191, 190, | |||||
189, 188, 187, 178, 177, 176, 175, 171, 170, 125, | |||||
125, 168, 167, 166, 165, 164, 161, 160, 159, 156, | |||||
155, 154, 153, 152, 151, 146, 145, 138, 137, 136, | |||||
127, 126, 118, 107, 100, 97, 96, 95, 94, 93, | |||||
92, 91, 90, 86, 83, 82, 81, 78, 32, 48, | |||||
47, 34, 33, 32, 311, 3, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311 | |||||
} ; | } ; | ||||
static yyconst flex_int16_t yy_chk[419] = | |||||
static yyconst flex_int16_t yy_chk[431] = | |||||
{ 0, | { 0, | ||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 10, | |||||
11, 10, 11, 14, 19, 14, 17, 17, 17, 17, | |||||
17, 18, 18, 21, 19, 27, 28, 27, 28, 36, | |||||
17, 314, 17, 17, 31, 28, 21, 21, 21, 22, | |||||
31, 36, 38, 38, 38, 53, 53, 63, 22, 56, | |||||
58, 81, 22, 81, 56, 58, 58, 58, 139, 55, | |||||
22, 22, 22, 23, 99, 23, 63, 139, 23, 70, | |||||
70, 313, 23, 70, 99, 23, 55, 55, 55, 23, | |||||
62, 65, 23, 23, 23, 24, 312, 62, 62, 62, | |||||
80, 80, 82, 82, 65, 65, 65, 85, 92, 92, | |||||
126, 24, 24, 126, 311, 24, 24, 24, 24, 74, | |||||
74, 74, 74, 74, 85, 120, 85, 125, 85, 310, | |||||
125, 173, 173, 74, 125, 74, 74, 309, 120, 136, | |||||
136, 136, 174, 307, 174, 175, 175, 120, 186, 186, | |||||
186, 186, 189, 189, 189, 193, 193, 193, 195, 195, | |||||
195, 213, 213, 213, 215, 215, 215, 241, 241, 241, | |||||
270, 270, 270, 308, 306, 308, 304, 303, 302, 301, | |||||
300, 299, 298, 297, 296, 295, 294, 293, 292, 291, | |||||
290, 289, 288, 287, 286, 285, 283, 282, 281, 279, | |||||
278, 277, 276, 275, 274, 273, 272, 271, 269, 268, | |||||
267, 266, 265, 264, 263, 262, 261, 260, 258, 257, | |||||
255, 254, 253, 251, 250, 249, 248, 247, 246, 245, | |||||
244, 242, 240, 239, 238, 237, 236, 235, 234, 232, | |||||
231, 229, 228, 227, 226, 224, 223, 221, 220, 219, | |||||
218, 217, 216, 214, 211, 210, 208, 207, 206, 205, | |||||
204, 203, 202, 201, 200, 199, 198, 197, 194, 192, | |||||
191, 190, 188, 187, 185, 184, 183, 181, 180, 179, | |||||
177, 176, 172, 171, 170, 169, 168, 167, 166, 165, | |||||
164, 163, 162, 161, 160, 158, 156, 155, 154, 152, | |||||
150, 149, 148, 147, 146, 145, 144, 143, 142, 141, | |||||
140, 138, 137, 124, 123, 122, 121, 119, 117, 116, | |||||
111, 109, 108, 104, 100, 98, 97, 93, 90, 89, | |||||
88, 87, 86, 84, 83, 78, 77, 76, 72, 64, | |||||
57, 54, 49, 47, 43, 42, 41, 40, 39, 37, | |||||
34, 33, 32, 26, 20, 13, 12, 3, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305, 305, 305, | |||||
305, 305, 305, 305, 305, 305, 305, 305 | |||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||||
1, 1, 1, 1, 10, 11, 10, 11, 14, 20, | |||||
14, 18, 18, 18, 18, 18, 19, 19, 23, 20, | |||||
31, 24, 31, 32, 41, 18, 32, 18, 18, 320, | |||||
24, 23, 23, 23, 24, 32, 41, 43, 43, 43, | |||||
36, 61, 24, 24, 24, 25, 36, 25, 59, 59, | |||||
25, 62, 135, 69, 25, 135, 62, 25, 61, 61, | |||||
61, 25, 71, 64, 25, 25, 25, 26, 64, 64, | |||||
64, 68, 69, 87, 87, 71, 71, 71, 68, 68, | |||||
68, 76, 76, 26, 26, 76, 319, 26, 26, 26, | |||||
26, 81, 81, 81, 81, 81, 88, 92, 88, 89, | |||||
89, 100, 100, 107, 129, 81, 318, 81, 81, 145, | |||||
145, 145, 134, 107, 92, 134, 92, 129, 92, 134, | |||||
184, 184, 185, 317, 185, 316, 129, 186, 186, 197, | |||||
197, 197, 197, 200, 200, 200, 204, 204, 204, 206, | |||||
206, 206, 225, 225, 225, 227, 227, 227, 253, 253, | |||||
253, 282, 282, 282, 314, 315, 314, 313, 312, 310, | |||||
309, 308, 307, 306, 305, 304, 303, 302, 301, 300, | |||||
299, 298, 297, 296, 294, 293, 292, 290, 289, 288, | |||||
287, 286, 285, 284, 283, 281, 280, 279, 277, 276, | |||||
275, 274, 273, 272, 270, 269, 267, 266, 265, 264, | |||||
262, 261, 260, 259, 258, 257, 256, 254, 252, 251, | |||||
250, 249, 248, 247, 246, 244, 243, 241, 240, 239, | |||||
238, 236, 235, 233, 232, 231, 230, 229, 228, 226, | |||||
224, 222, 220, 219, 218, 217, 216, 215, 214, 213, | |||||
212, 211, 210, 209, 208, 205, 203, 202, 201, 199, | |||||
198, 196, 195, 194, 192, 191, 190, 188, 187, 183, | |||||
182, 181, 180, 179, 178, 177, 176, 175, 174, 173, | |||||
172, 171, 170, 168, 166, 165, 164, 162, 160, 159, | |||||
158, 157, 156, 155, 154, 153, 152, 151, 150, 149, | |||||
148, 147, 146, 133, 132, 131, 130, 128, 126, 125, | |||||
124, 119, 117, 116, 112, 108, 106, 105, 101, 98, | |||||
97, 96, 95, 94, 93, 91, 90, 85, 84, 83, | |||||
79, 78, 70, 63, 60, 55, 53, 49, 48, 47, | |||||
46, 45, 44, 42, 39, 38, 37, 34, 30, 22, | |||||
21, 15, 13, 12, 3, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311, | |||||
311, 311, 311, 311, 311, 311, 311, 311, 311, 311 | |||||
} ; | } ; | ||||
/* The intent behind this definition is that it'll catch | /* The intent behind this definition is that it'll catch | ||||
@@ -641,7 +645,7 @@ typedef lol::EasyMeshParser::token_type token_type; | |||||
#define yyterminate() return token::T_END | #define yyterminate() return token::T_END | ||||
#define YY_NO_UNISTD_H | #define YY_NO_UNISTD_H | ||||
#define YY_USER_ACTION yylloc->columns(yyleng); | #define YY_USER_ACTION yylloc->columns(yyleng); | ||||
#line 645 "generated/easymesh-scanner.cpp" | |||||
#line 649 "generated/easymesh-scanner.cpp" | |||||
#define INITIAL 0 | #define INITIAL 0 | ||||
@@ -753,7 +757,7 @@ YY_DECL | |||||
yylloc->step(); | yylloc->step(); | ||||
#line 757 "generated/easymesh-scanner.cpp" | |||||
#line 761 "generated/easymesh-scanner.cpp" | |||||
if ( !(yy_init) ) | if ( !(yy_init) ) | ||||
{ | { | ||||
@@ -806,13 +810,13 @@ yy_match: | |||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) | while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) | ||||
{ | { | ||||
yy_current_state = (int) yy_def[yy_current_state]; | yy_current_state = (int) yy_def[yy_current_state]; | ||||
if ( yy_current_state >= 306 ) | |||||
if ( yy_current_state >= 312 ) | |||||
yy_c = yy_meta[(unsigned int) yy_c]; | yy_c = yy_meta[(unsigned int) yy_c]; | ||||
} | } | ||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; | yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; | ||||
++yy_cp; | ++yy_cp; | ||||
} | } | ||||
while ( yy_current_state != 305 ); | |||||
while ( yy_current_state != 311 ); | |||||
yy_cp = (yy_last_accepting_cpos); | yy_cp = (yy_last_accepting_cpos); | ||||
yy_current_state = (yy_last_accepting_state); | yy_current_state = (yy_last_accepting_state); | ||||
@@ -1059,74 +1063,79 @@ YY_RULE_SETUP | |||||
YY_BREAK | YY_BREAK | ||||
case 46: | case 46: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 98 "easymesh/easymesh-scanner.l" | |||||
{ return token::T_CYLINDER; } | |||||
#line 97 "easymesh/easymesh-scanner.l" | |||||
{ return token::T_DUPLICATE; } | |||||
YY_BREAK | YY_BREAK | ||||
case 47: | case 47: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 99 "easymesh/easymesh-scanner.l" | #line 99 "easymesh/easymesh-scanner.l" | ||||
{ return token::T_SPHERE; } | |||||
{ return token::T_CYLINDER; } | |||||
YY_BREAK | YY_BREAK | ||||
case 48: | case 48: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 100 "easymesh/easymesh-scanner.l" | #line 100 "easymesh/easymesh-scanner.l" | ||||
{ return token::T_CAPSULE; } | |||||
{ return token::T_SPHERE; } | |||||
YY_BREAK | YY_BREAK | ||||
case 49: | case 49: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 101 "easymesh/easymesh-scanner.l" | #line 101 "easymesh/easymesh-scanner.l" | ||||
{ return token::T_TORUS; } | |||||
{ return token::T_CAPSULE; } | |||||
YY_BREAK | YY_BREAK | ||||
case 50: | case 50: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 102 "easymesh/easymesh-scanner.l" | #line 102 "easymesh/easymesh-scanner.l" | ||||
{ return token::T_BOX; } | |||||
{ return token::T_TORUS; } | |||||
YY_BREAK | YY_BREAK | ||||
case 51: | case 51: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 103 "easymesh/easymesh-scanner.l" | #line 103 "easymesh/easymesh-scanner.l" | ||||
{ return token::T_SMOOTHCHAMFBOX; } | |||||
{ return token::T_BOX; } | |||||
YY_BREAK | YY_BREAK | ||||
case 52: | case 52: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 104 "easymesh/easymesh-scanner.l" | #line 104 "easymesh/easymesh-scanner.l" | ||||
{ return token::T_FLATCHAMFBOX; } | |||||
{ return token::T_SMOOTHCHAMFBOX; } | |||||
YY_BREAK | YY_BREAK | ||||
case 53: | case 53: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 105 "easymesh/easymesh-scanner.l" | #line 105 "easymesh/easymesh-scanner.l" | ||||
{ return token::T_STAR; } | |||||
{ return token::T_FLATCHAMFBOX; } | |||||
YY_BREAK | YY_BREAK | ||||
case 54: | case 54: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 106 "easymesh/easymesh-scanner.l" | #line 106 "easymesh/easymesh-scanner.l" | ||||
{ return token::T_EXPANDEDSTAR; } | |||||
{ return token::T_STAR; } | |||||
YY_BREAK | YY_BREAK | ||||
case 55: | case 55: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 107 "easymesh/easymesh-scanner.l" | #line 107 "easymesh/easymesh-scanner.l" | ||||
{ return token::T_DISC; } | |||||
{ return token::T_EXPANDEDSTAR; } | |||||
YY_BREAK | YY_BREAK | ||||
case 56: | case 56: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 108 "easymesh/easymesh-scanner.l" | #line 108 "easymesh/easymesh-scanner.l" | ||||
{ return token::T_TRIANGLE; } | |||||
{ return token::T_DISC; } | |||||
YY_BREAK | YY_BREAK | ||||
case 57: | case 57: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 109 "easymesh/easymesh-scanner.l" | #line 109 "easymesh/easymesh-scanner.l" | ||||
{ return token::T_QUAD; } | |||||
{ return token::T_TRIANGLE; } | |||||
YY_BREAK | YY_BREAK | ||||
case 58: | case 58: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 110 "easymesh/easymesh-scanner.l" | #line 110 "easymesh/easymesh-scanner.l" | ||||
{ return token::T_QUAD; } | |||||
YY_BREAK | |||||
case 59: | |||||
YY_RULE_SETUP | |||||
#line 111 "easymesh/easymesh-scanner.l" | |||||
{ return token::T_COG; } | { return token::T_COG; } | ||||
YY_BREAK | YY_BREAK | ||||
/* ======= BASE COLOR TYPES ========================================= */ | /* ======= BASE COLOR TYPES ========================================= */ | ||||
/* COLOR */ | /* COLOR */ | ||||
case 59: | |||||
case 60: | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 114 "easymesh/easymesh-scanner.l" | |||||
#line 115 "easymesh/easymesh-scanner.l" | |||||
{ | { | ||||
uint32_t tmp = std::strtol(yytext + 1, nullptr, 16); | uint32_t tmp = std::strtol(yytext + 1, nullptr, 16); | ||||
yylval->u32val = 0x11000000u * (tmp >> 8) | yylval->u32val = 0x11000000u * (tmp >> 8) | ||||
@@ -1135,9 +1144,9 @@ YY_RULE_SETUP | |||||
| 0x000000ffu; | | 0x000000ffu; | ||||
return token::COLOR; } | return token::COLOR; } | ||||
YY_BREAK | YY_BREAK | ||||
case 60: | |||||
case 61: | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 121 "easymesh/easymesh-scanner.l" | |||||
#line 122 "easymesh/easymesh-scanner.l" | |||||
{ | { | ||||
uint32_t tmp = std::strtol(yytext + 1, nullptr, 16); | uint32_t tmp = std::strtol(yytext + 1, nullptr, 16); | ||||
yylval->u32val = 0x11000000u * (tmp >> 12) | yylval->u32val = 0x11000000u * (tmp >> 12) | ||||
@@ -1146,101 +1155,111 @@ YY_RULE_SETUP | |||||
| 0x00000011u * (tmp & 0xf); | | 0x00000011u * (tmp & 0xf); | ||||
return token::COLOR; } | return token::COLOR; } | ||||
YY_BREAK | YY_BREAK | ||||
case 61: | |||||
case 62: | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 128 "easymesh/easymesh-scanner.l" | |||||
#line 129 "easymesh/easymesh-scanner.l" | |||||
{ | { | ||||
yylval->u32val = 0xffu | yylval->u32val = 0xffu | ||||
| 0x100u * (uint32_t)std::strtol(yytext + 1, nullptr, 16); | | 0x100u * (uint32_t)std::strtol(yytext + 1, nullptr, 16); | ||||
return token::COLOR; } | return token::COLOR; } | ||||
YY_BREAK | YY_BREAK | ||||
case 62: | |||||
case 63: | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 132 "easymesh/easymesh-scanner.l" | |||||
#line 133 "easymesh/easymesh-scanner.l" | |||||
{ | { | ||||
yylval->u32val = (uint32_t)std::strtol(yytext + 1, nullptr, 16); | yylval->u32val = (uint32_t)std::strtol(yytext + 1, nullptr, 16); | ||||
return token::COLOR; } | return token::COLOR; } | ||||
YY_BREAK | YY_BREAK | ||||
/* ======= BASE DATA TYPES ========================================= */ | /* ======= BASE DATA TYPES ========================================= */ | ||||
/* BOOL */ | /* BOOL */ | ||||
case 63: | |||||
case 64: | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 138 "easymesh/easymesh-scanner.l" | |||||
#line 139 "easymesh/easymesh-scanner.l" | |||||
{ yylval->bval = true; return token::BOOLEAN; } | { yylval->bval = true; return token::BOOLEAN; } | ||||
YY_BREAK | YY_BREAK | ||||
case 64: | |||||
case 65: | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 139 "easymesh/easymesh-scanner.l" | |||||
#line 140 "easymesh/easymesh-scanner.l" | |||||
{ yylval->bval = false; return token::BOOLEAN; } | { yylval->bval = false; return token::BOOLEAN; } | ||||
YY_BREAK | YY_BREAK | ||||
/* FLOAT */ | /* FLOAT */ | ||||
case 65: | |||||
case 66: | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 141 "easymesh/easymesh-scanner.l" | |||||
#line 142 "easymesh/easymesh-scanner.l" | |||||
{ | { | ||||
yylval->fval = (float)std::atof(yytext); return token::F_NUMBER; } | yylval->fval = (float)std::atof(yytext); return token::F_NUMBER; } | ||||
YY_BREAK | YY_BREAK | ||||
/* INT */ | /* INT */ | ||||
case 66: | |||||
case 67: | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 144 "easymesh/easymesh-scanner.l" | |||||
#line 145 "easymesh/easymesh-scanner.l" | |||||
{ | { | ||||
yylval->ival = std::atoi(yytext); return token::I_NUMBER; } | yylval->ival = std::atoi(yytext); return token::I_NUMBER; } | ||||
YY_BREAK | YY_BREAK | ||||
/* ======= COMMENTS ======= */ | /* ======= COMMENTS ======= */ | ||||
case 67: | |||||
case 68: | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 148 "easymesh/easymesh-scanner.l" | |||||
#line 149 "easymesh/easymesh-scanner.l" | |||||
{ /* ignore this */ } | { /* ignore this */ } | ||||
YY_BREAK | YY_BREAK | ||||
/* Semantics tokens */ | /* Semantics tokens */ | ||||
case 68: | |||||
YY_RULE_SETUP | |||||
#line 151 "easymesh/easymesh-scanner.l" | |||||
{ return token_type('-'); } | |||||
YY_BREAK | |||||
case 69: | case 69: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 152 "easymesh/easymesh-scanner.l" | #line 152 "easymesh/easymesh-scanner.l" | ||||
{ return token_type('('); } | |||||
{ return token_type('-'); } | |||||
YY_BREAK | YY_BREAK | ||||
case 70: | case 70: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 153 "easymesh/easymesh-scanner.l" | #line 153 "easymesh/easymesh-scanner.l" | ||||
{ return token_type(')'); } | |||||
{ return token_type('('); } | |||||
YY_BREAK | YY_BREAK | ||||
case 71: | case 71: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 154 "easymesh/easymesh-scanner.l" | #line 154 "easymesh/easymesh-scanner.l" | ||||
{ return token_type('['); } | |||||
{ return token_type(')'); } | |||||
YY_BREAK | YY_BREAK | ||||
case 72: | case 72: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 155 "easymesh/easymesh-scanner.l" | #line 155 "easymesh/easymesh-scanner.l" | ||||
{ return token_type(']'); } | |||||
{ return token_type('{'); } | |||||
YY_BREAK | YY_BREAK | ||||
case 73: | case 73: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 156 "easymesh/easymesh-scanner.l" | #line 156 "easymesh/easymesh-scanner.l" | ||||
{ /* ignore this */ } | |||||
{ return token_type('}'); } | |||||
YY_BREAK | YY_BREAK | ||||
case 74: | case 74: | ||||
/* rule 74 can match eol */ | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 157 "easymesh/easymesh-scanner.l" | #line 157 "easymesh/easymesh-scanner.l" | ||||
{ /* ignore this */ } | |||||
{ return token_type('['); } | |||||
YY_BREAK | YY_BREAK | ||||
case 75: | case 75: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 158 "easymesh/easymesh-scanner.l" | #line 158 "easymesh/easymesh-scanner.l" | ||||
{ return token::T_ERROR; } | |||||
{ return token_type(']'); } | |||||
YY_BREAK | YY_BREAK | ||||
case 76: | case 76: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 159 "easymesh/easymesh-scanner.l" | |||||
{ /* ignore this */ } | |||||
YY_BREAK | |||||
case 77: | |||||
/* rule 77 can match eol */ | |||||
YY_RULE_SETUP | |||||
#line 160 "easymesh/easymesh-scanner.l" | #line 160 "easymesh/easymesh-scanner.l" | ||||
{ /* ignore this */ } | |||||
YY_BREAK | |||||
case 78: | |||||
YY_RULE_SETUP | |||||
#line 161 "easymesh/easymesh-scanner.l" | |||||
{ return token::T_ERROR; } | |||||
YY_BREAK | |||||
case 79: | |||||
YY_RULE_SETUP | |||||
#line 163 "easymesh/easymesh-scanner.l" | |||||
ECHO; | ECHO; | ||||
YY_BREAK | YY_BREAK | ||||
#line 1244 "generated/easymesh-scanner.cpp" | |||||
#line 1263 "generated/easymesh-scanner.cpp" | |||||
case YY_STATE_EOF(INITIAL): | case YY_STATE_EOF(INITIAL): | ||||
yyterminate(); | yyterminate(); | ||||
@@ -1622,7 +1641,7 @@ int yyFlexLexer::yy_get_next_buffer() | |||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) | while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) | ||||
{ | { | ||||
yy_current_state = (int) yy_def[yy_current_state]; | yy_current_state = (int) yy_def[yy_current_state]; | ||||
if ( yy_current_state >= 306 ) | |||||
if ( yy_current_state >= 312 ) | |||||
yy_c = yy_meta[(unsigned int) yy_c]; | yy_c = yy_meta[(unsigned int) yy_c]; | ||||
} | } | ||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; | yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; | ||||
@@ -1650,11 +1669,11 @@ int yyFlexLexer::yy_get_next_buffer() | |||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) | while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) | ||||
{ | { | ||||
yy_current_state = (int) yy_def[yy_current_state]; | yy_current_state = (int) yy_def[yy_current_state]; | ||||
if ( yy_current_state >= 306 ) | |||||
if ( yy_current_state >= 312 ) | |||||
yy_c = yy_meta[(unsigned int) yy_c]; | yy_c = yy_meta[(unsigned int) yy_c]; | ||||
} | } | ||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; | yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; | ||||
yy_is_jam = (yy_current_state == 305); | |||||
yy_is_jam = (yy_current_state == 311); | |||||
return yy_is_jam ? 0 : yy_current_state; | return yy_is_jam ? 0 : yy_current_state; | ||||
} | } | ||||
@@ -2141,7 +2160,7 @@ void EasyMeshfree (void * ptr ) | |||||
#define YYTABLES_NAME "yytables" | #define YYTABLES_NAME "yytables" | ||||
#line 160 "easymesh/easymesh-scanner.l" | |||||
#line 163 "easymesh/easymesh-scanner.l" | |||||
@@ -251,6 +251,7 @@ template <typename T> struct Vec2 : BVec2<T> | |||||
LOL_MEMBER_OPS(Vec2, x) | LOL_MEMBER_OPS(Vec2, x) | ||||
static const Vec2<T> one; | |||||
static const Vec2<T> zero; | static const Vec2<T> zero; | ||||
static const Vec2<T> axis_x; | static const Vec2<T> axis_x; | ||||
static const Vec2<T> axis_y; | static const Vec2<T> axis_y; | ||||
@@ -524,6 +525,7 @@ template <typename T> struct Vec3 : BVec3<T> | |||||
LOL_MEMBER_OPS(Vec3, x) | LOL_MEMBER_OPS(Vec3, x) | ||||
static const Vec3<T> one; | |||||
static const Vec3<T> zero; | static const Vec3<T> zero; | ||||
static const Vec3<T> axis_x; | static const Vec3<T> axis_x; | ||||
static const Vec3<T> axis_y; | static const Vec3<T> axis_y; | ||||
@@ -946,6 +948,7 @@ template <typename T> struct Vec4 : BVec4<T> | |||||
LOL_MEMBER_OPS(Vec4, x) | LOL_MEMBER_OPS(Vec4, x) | ||||
static const Vec4<T> one; | |||||
static const Vec4<T> zero; | static const Vec4<T> zero; | ||||
static const Vec4<T> axis_x; | static const Vec4<T> axis_x; | ||||
static const Vec4<T> axis_y; | static const Vec4<T> axis_y; | ||||
@@ -29,15 +29,18 @@ namespace lol { | |||||
Vec4<type> const Vec4<type>::name = Vec4<type>((type)a, (type)b, (type)c, (type)d); | Vec4<type> const Vec4<type>::name = Vec4<type>((type)a, (type)b, (type)c, (type)d); | ||||
#define LOL_ALL_VECTOR_CONST_INNER(type) \ | #define LOL_ALL_VECTOR_CONST_INNER(type) \ | ||||
LOL_VEC_2_CONST(type, one, 1, 1) \ | |||||
LOL_VEC_2_CONST(type, zero, 0, 0) \ | LOL_VEC_2_CONST(type, zero, 0, 0) \ | ||||
LOL_VEC_2_CONST(type, axis_x, 1, 0) \ | LOL_VEC_2_CONST(type, axis_x, 1, 0) \ | ||||
LOL_VEC_2_CONST(type, axis_y, 0, 1) \ | LOL_VEC_2_CONST(type, axis_y, 0, 1) \ | ||||
\ | \ | ||||
LOL_VEC_3_CONST(type, one, 1, 1, 1) \ | |||||
LOL_VEC_3_CONST(type, zero, 0, 0, 0) \ | LOL_VEC_3_CONST(type, zero, 0, 0, 0) \ | ||||
LOL_VEC_3_CONST(type, axis_x, 1, 0, 0) \ | LOL_VEC_3_CONST(type, axis_x, 1, 0, 0) \ | ||||
LOL_VEC_3_CONST(type, axis_y, 0, 1, 0) \ | LOL_VEC_3_CONST(type, axis_y, 0, 1, 0) \ | ||||
LOL_VEC_3_CONST(type, axis_z, 0, 0, 1) \ | LOL_VEC_3_CONST(type, axis_z, 0, 0, 1) \ | ||||
\ | \ | ||||
LOL_VEC_4_CONST(type, one, 1, 1, 1, 1) \ | |||||
LOL_VEC_4_CONST(type, zero, 0, 0, 0, 0) \ | LOL_VEC_4_CONST(type, zero, 0, 0, 0, 0) \ | ||||
LOL_VEC_4_CONST(type, axis_x, 1, 0, 0, 0) \ | LOL_VEC_4_CONST(type, axis_x, 1, 0, 0, 0) \ | ||||
LOL_VEC_4_CONST(type, axis_y, 0, 1, 0, 0) \ | LOL_VEC_4_CONST(type, axis_y, 0, 1, 0, 0) \ | ||||
@@ -1,7 +1,28 @@ | |||||
addlight 0.0 position (1 0 1) color #0ff | |||||
addlight 0.0 position (-0.2 -1 -0.5) color (.0 .2 .5 1) | |||||
addlight 0.0 position (1 -1 1) color #fff | |||||
addlight 0.0 position (-1 -1 -1) color #fff | |||||
clearcolor #f00 | |||||
//addlight 0.0 position (1 0 1) color #0ff | |||||
//addlight 0.0 position (-0.2 -1 -0.5) color (.0 .2 .5 1) | |||||
custom setmesh "sc#fff ab 2 ty 1.5 ab 2" | |||||
//custom setmesh "sc#f00 ab 2 ty 1.5 ab 2" | |||||
custom setmesh " | |||||
[sc#0f0 scb#0f0 ac 3 .5 .4 0 ty .25 [ad 3 .4 sy -1] ty .5 ac 3 1 .1 .1 ty .5 dup [ rz 90 ry 90 dup [ ry 90 ] ] ] | |||||
//[sc#f00 scb#f00 ac 3 .5 .4 0 ty .25 [ad 3 .4 sy -1] ty .5 ac 3 1 .1 .1 ty .5 rz -90] | |||||
//[sc#00f scb#00f ac 3 .5 .4 0 ty .25 [ad 3 .4 sy -1] ty .5 ac 3 1 .1 .1 ty .5 rx 90] | |||||
//[sc#fff ab .1] | |||||
[sc#f00 ab .2 tx 1] | |||||
[sc#0f0 ab .2 ty 1] | |||||
[sc#00f ab .2 tz 1] | |||||
//sc#0f0 ab 2 ty 1.5 ab 2 | |||||
//sc#00f ab 2 ty 1.5 ab 2 | |||||
" | |||||
//splt 0 | //splt 0 | ||||
//test | //test | ||||
@@ -13,11 +13,11 @@ CmdVar("vec3", ["X/Y/Z as float", " f f f", "(f f f)", "(f)"]); | |||||
//------------------------------------------------------------------------- | //------------------------------------------------------------------------- | ||||
//Mesh CSG operations | //Mesh CSG operations | ||||
//------------------------------------------------------------------------- | //------------------------------------------------------------------------- | ||||
CmdType(["csgu", "csgunion"], "Performs a Union operation as (mesh0_Outside + mesh1_Outside)"); | |||||
CmdType(["csgs", "csgsubstract"], "Performs a Substract operation as (mesh0_Outside + mesh1_Inside-inverted)"); | |||||
CmdType(["csgsl", "csgsubstractloss"], "Performs a Substract operation without keeping the mesh1 part"); | |||||
CmdType(["csga", "csgand"], "Performs an And operation as (mesh0_Inside + mesh1_Inside)"); | |||||
CmdType(["csgx", "csgxor"], "Performs a Xor operation as (m0_Outside/m0_Inside-inverted + m1_Outside/m1_Inside-inverted)"); | |||||
CmdType(["csgu", "csgunion"], "Performs a Union operation as (mesh0_Outside + mesh1_Outside)", [CmdArg("[ ]", "")]); | |||||
CmdType(["csgs", "csgsubstract"], "Performs a Substract operation as (mesh0_Outside + mesh1_Inside-inverted)", [CmdArg("[ ]", "")]); | |||||
CmdType(["csgsl", "csgsubstractloss"], "Performs a Substract operation without keeping the mesh1 part", [CmdArg("[ ]", "")]); | |||||
CmdType(["csga", "csgand"], "Performs an And operation as (mesh0_Inside + mesh1_Inside)", [CmdArg("[ ]", "")]); | |||||
CmdType(["csgx", "csgxor"], "Performs a Xor operation as (m0_Outside/m0_Inside-inverted + m1_Outside/m1_Inside-inverted)", [CmdArg("[ ]", "")]); | |||||
//------------------------------------------------------------------------- | //------------------------------------------------------------------------- | ||||
//Mesh Base operations | //Mesh Base operations | ||||
@@ -60,6 +60,7 @@ CmdType(["sx", "scalex"], "Scale vertices", [CmdArg("vec3", "s")]); | |||||
CmdType(["sy", "scaley"], "Scale vertices", [CmdArg("vec3", "s")]); | CmdType(["sy", "scaley"], "Scale vertices", [CmdArg("vec3", "s")]); | ||||
CmdType(["sz", "scalez"], "Scale vertices", [CmdArg("vec3", "s")]); | CmdType(["sz", "scalez"], "Scale vertices", [CmdArg("vec3", "s")]); | ||||
CmdType(["s", "scale"], "Uniformly Scale vertices", [CmdArg("float", "s")]); | CmdType(["s", "scale"], "Uniformly Scale vertices", [CmdArg("float", "s")]); | ||||
CmdType(["dup", "duplicate"], "Duplicate scope mesh and apply commands in the brackets.", [CmdArg("[ ]", "")]); | |||||
CmdType(["mx", "mirrorx"], "Mirror vertices through X-plane"); | CmdType(["mx", "mirrorx"], "Mirror vertices through X-plane"); | ||||
CmdType(["my", "mirrory"], "Mirror vertices through Y-plane"); | CmdType(["my", "mirrory"], "Mirror vertices through Y-plane"); | ||||
CmdType(["mz", "mirrorz"], "Mirror vertices through Z-plane"); | CmdType(["mz", "mirrorz"], "Mirror vertices through Z-plane"); | ||||
@@ -488,115 +488,130 @@ namespace lol { | |||||
case 17: | case 17: | ||||
/* Line 677 of lalr1.cc */ | /* Line 677 of lalr1.cc */ | ||||
#line 134 "scenesetup-parser.y" | |||||
{ uc.m_sstp.m_custom_cmd.Push((yysemantic_stack_[(3) - (2)].svval), (yysemantic_stack_[(3) - (3)].sval)); } | |||||
#line 131 "scenesetup-parser.y" | |||||
{ uc.m_sstp.m_clear_color = vec4((yysemantic_stack_[(2) - (2)].vval)[0], (yysemantic_stack_[(2) - (2)].vval)[1], (yysemantic_stack_[(2) - (2)].vval)[2], (yysemantic_stack_[(2) - (2)].vval)[3]); } | |||||
break; | break; | ||||
case 18: | case 18: | ||||
/* Line 677 of lalr1.cc */ | /* Line 677 of lalr1.cc */ | ||||
#line 140 "scenesetup-parser.y" | |||||
{ (yyval.fval) = (yysemantic_stack_[(1) - (1)].fval); } | |||||
#line 132 "scenesetup-parser.y" | |||||
{ uint32_t x = (yysemantic_stack_[(2) - (2)].u32val); ivec4 v(x >> 24, (x >> 16) & 0xff, (x >> 8) & 0xff, x & 0xff); | |||||
uc.m_sstp.m_clear_color = vec4(v) * (1.f / 255.f); } | |||||
break; | break; | ||||
case 19: | case 19: | ||||
/* Line 677 of lalr1.cc */ | /* Line 677 of lalr1.cc */ | ||||
#line 141 "scenesetup-parser.y" | |||||
{ (yyval.fval) = -(yysemantic_stack_[(2) - (2)].fval); } | |||||
#line 137 "scenesetup-parser.y" | |||||
{ uc.m_sstp.m_custom_cmd.Push((yysemantic_stack_[(3) - (2)].svval), (yysemantic_stack_[(3) - (3)].sval)); } | |||||
break; | break; | ||||
case 20: | case 20: | ||||
/* Line 677 of lalr1.cc */ | /* Line 677 of lalr1.cc */ | ||||
#line 142 "scenesetup-parser.y" | |||||
{ (yyval.fval) = (float)(yysemantic_stack_[(1) - (1)].ival); } | |||||
#line 143 "scenesetup-parser.y" | |||||
{ (yyval.fval) = (yysemantic_stack_[(1) - (1)].fval); } | |||||
break; | break; | ||||
case 21: | case 21: | ||||
/* Line 677 of lalr1.cc */ | /* Line 677 of lalr1.cc */ | ||||
#line 143 "scenesetup-parser.y" | |||||
{ (yyval.fval) = -(float)(yysemantic_stack_[(2) - (2)].ival); } | |||||
#line 144 "scenesetup-parser.y" | |||||
{ (yyval.fval) = -(yysemantic_stack_[(2) - (2)].fval); } | |||||
break; | break; | ||||
case 22: | case 22: | ||||
/* Line 677 of lalr1.cc */ | /* Line 677 of lalr1.cc */ | ||||
#line 147 "scenesetup-parser.y" | |||||
{ (yyval.ival) = (yysemantic_stack_[(1) - (1)].ival); } | |||||
#line 145 "scenesetup-parser.y" | |||||
{ (yyval.fval) = (float)(yysemantic_stack_[(1) - (1)].ival); } | |||||
break; | break; | ||||
case 23: | case 23: | ||||
/* Line 677 of lalr1.cc */ | /* Line 677 of lalr1.cc */ | ||||
#line 148 "scenesetup-parser.y" | |||||
{ (yyval.ival) = -(yysemantic_stack_[(2) - (2)].ival); } | |||||
#line 146 "scenesetup-parser.y" | |||||
{ (yyval.fval) = -(float)(yysemantic_stack_[(2) - (2)].ival); } | |||||
break; | break; | ||||
case 24: | case 24: | ||||
/* Line 677 of lalr1.cc */ | /* Line 677 of lalr1.cc */ | ||||
#line 149 "scenesetup-parser.y" | |||||
{ (yyval.ival) = (int)(yysemantic_stack_[(1) - (1)].fval); } | |||||
#line 150 "scenesetup-parser.y" | |||||
{ (yyval.ival) = (yysemantic_stack_[(1) - (1)].ival); } | |||||
break; | break; | ||||
case 25: | case 25: | ||||
/* Line 677 of lalr1.cc */ | /* Line 677 of lalr1.cc */ | ||||
#line 150 "scenesetup-parser.y" | |||||
{ (yyval.ival) = -(int)(yysemantic_stack_[(2) - (2)].fval); } | |||||
#line 151 "scenesetup-parser.y" | |||||
{ (yyval.ival) = -(yysemantic_stack_[(2) - (2)].ival); } | |||||
break; | break; | ||||
case 26: | case 26: | ||||
/* Line 677 of lalr1.cc */ | /* Line 677 of lalr1.cc */ | ||||
#line 155 "scenesetup-parser.y" | |||||
{ (yyval.vval)[0] = (yysemantic_stack_[(3) - (2)].fval); (yyval.vval)[1] = (yysemantic_stack_[(3) - (2)].fval); (yyval.vval)[2] = (yysemantic_stack_[(3) - (2)].fval); } | |||||
#line 152 "scenesetup-parser.y" | |||||
{ (yyval.ival) = (int)(yysemantic_stack_[(1) - (1)].fval); } | |||||
break; | break; | ||||
case 27: | case 27: | ||||
/* Line 677 of lalr1.cc */ | /* Line 677 of lalr1.cc */ | ||||
#line 156 "scenesetup-parser.y" | |||||
{ (yyval.vval)[0] = (yysemantic_stack_[(5) - (2)].fval); (yyval.vval)[1] = (yysemantic_stack_[(5) - (3)].fval); (yyval.vval)[2] = (yysemantic_stack_[(5) - (4)].fval); } | |||||
#line 153 "scenesetup-parser.y" | |||||
{ (yyval.ival) = -(int)(yysemantic_stack_[(2) - (2)].fval); } | |||||
break; | break; | ||||
case 28: | case 28: | ||||
/* Line 677 of lalr1.cc */ | /* Line 677 of lalr1.cc */ | ||||
#line 165 "scenesetup-parser.y" | |||||
{ (yyval.vval)[0] = (yysemantic_stack_[(3) - (2)].fval); (yyval.vval)[1] = (yysemantic_stack_[(3) - (2)].fval); (yyval.vval)[2] = (yysemantic_stack_[(3) - (2)].fval); (yyval.vval)[3] = (yysemantic_stack_[(3) - (2)].fval); } | |||||
#line 158 "scenesetup-parser.y" | |||||
{ (yyval.vval)[0] = (yysemantic_stack_[(3) - (2)].fval); (yyval.vval)[1] = (yysemantic_stack_[(3) - (2)].fval); (yyval.vval)[2] = (yysemantic_stack_[(3) - (2)].fval); } | |||||
break; | break; | ||||
case 29: | case 29: | ||||
/* Line 677 of lalr1.cc */ | /* Line 677 of lalr1.cc */ | ||||
#line 166 "scenesetup-parser.y" | |||||
{ (yyval.vval)[0] = (yysemantic_stack_[(6) - (2)].fval); (yyval.vval)[1] = (yysemantic_stack_[(6) - (3)].fval); (yyval.vval)[2] = (yysemantic_stack_[(6) - (4)].fval); (yyval.vval)[3] = (yysemantic_stack_[(6) - (5)].fval); } | |||||
#line 159 "scenesetup-parser.y" | |||||
{ (yyval.vval)[0] = (yysemantic_stack_[(5) - (2)].fval); (yyval.vval)[1] = (yysemantic_stack_[(5) - (3)].fval); (yyval.vval)[2] = (yysemantic_stack_[(5) - (4)].fval); } | |||||
break; | break; | ||||
case 30: | case 30: | ||||
/* Line 677 of lalr1.cc */ | /* Line 677 of lalr1.cc */ | ||||
#line 177 "scenesetup-parser.y" | |||||
{ (yyval.svval) = (yysemantic_stack_[(1) - (1)].svval); } | |||||
#line 168 "scenesetup-parser.y" | |||||
{ (yyval.vval)[0] = (yysemantic_stack_[(3) - (2)].fval); (yyval.vval)[1] = (yysemantic_stack_[(3) - (2)].fval); (yyval.vval)[2] = (yysemantic_stack_[(3) - (2)].fval); (yyval.vval)[3] = (yysemantic_stack_[(3) - (2)].fval); } | |||||
break; | break; | ||||
case 31: | case 31: | ||||
/* Line 677 of lalr1.cc */ | /* Line 677 of lalr1.cc */ | ||||
#line 181 "scenesetup-parser.y" | |||||
#line 169 "scenesetup-parser.y" | |||||
{ (yyval.vval)[0] = (yysemantic_stack_[(6) - (2)].fval); (yyval.vval)[1] = (yysemantic_stack_[(6) - (3)].fval); (yyval.vval)[2] = (yysemantic_stack_[(6) - (4)].fval); (yyval.vval)[3] = (yysemantic_stack_[(6) - (5)].fval); } | |||||
break; | |||||
case 32: | |||||
/* Line 677 of lalr1.cc */ | |||||
#line 180 "scenesetup-parser.y" | |||||
{ (yyval.svval) = (yysemantic_stack_[(1) - (1)].svval); } | |||||
break; | |||||
case 33: | |||||
/* Line 677 of lalr1.cc */ | |||||
#line 184 "scenesetup-parser.y" | |||||
{ String t = (yysemantic_stack_[(1) - (1)].sval); | { String t = (yysemantic_stack_[(1) - (1)].sval); | ||||
t.Replace('"', ' ', true); | t.Replace('"', ' ', true); | ||||
free((yysemantic_stack_[(1) - (1)].sval)); | free((yysemantic_stack_[(1) - (1)].sval)); | ||||
(yyval.sval) = strdup((const char *)t.C()); } | (yyval.sval) = strdup((const char *)t.C()); } | ||||
break; | break; | ||||
case 32: | |||||
case 34: | |||||
/* Line 677 of lalr1.cc */ | /* Line 677 of lalr1.cc */ | ||||
#line 185 "scenesetup-parser.y" | |||||
#line 188 "scenesetup-parser.y" | |||||
{ String t = (yysemantic_stack_[(2) - (1)].sval); | { String t = (yysemantic_stack_[(2) - (1)].sval); | ||||
t += (yysemantic_stack_[(2) - (2)].sval); | t += (yysemantic_stack_[(2) - (2)].sval); | ||||
t.Replace('"', ' ', true); | t.Replace('"', ' ', true); | ||||
@@ -608,7 +623,7 @@ namespace lol { | |||||
/* Line 677 of lalr1.cc */ | /* Line 677 of lalr1.cc */ | ||||
#line 612 "generated/scenesetup-parser.cpp" | |||||
#line 627 "generated/scenesetup-parser.cpp" | |||||
default: | default: | ||||
break; | break; | ||||
} | } | ||||
@@ -813,16 +828,16 @@ namespace lol { | |||||
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing | /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing | ||||
STATE-NUM. */ | STATE-NUM. */ | ||||
const signed char SceneSetupParser::yypact_ninf_ = -17; | |||||
const signed char SceneSetupParser::yypact_ninf_ = -18; | |||||
const signed char | const signed char | ||||
SceneSetupParser::yypact_[] = | SceneSetupParser::yypact_[] = | ||||
{ | { | ||||
28, 7, -12, -12, -5, 1, 24, 25, 28, 28, | |||||
-17, -17, -17, -17, -17, -17, 11, -17, 7, -17, | |||||
-17, -17, 7, -17, -17, -11, -17, -17, -17, -17, | |||||
-17, -17, 11, -17, -17, -7, -3, -11, -17, -17, | |||||
-17, -17, 7, -17, 7, -17, 12, 7, -17, 19, | |||||
-17 | |||||
30, 8, -13, -13, -6, -2, 3, 1, 26, 30, | |||||
30, -18, -18, -18, -18, -18, -18, 12, -18, 8, | |||||
-18, -18, -18, 8, -18, -18, -18, -18, 14, -18, | |||||
-18, -18, -18, -18, -18, 12, -18, -18, -8, -4, | |||||
14, -18, -18, -18, -18, 8, -18, 8, -18, 13, | |||||
8, -18, 21, -18 | |||||
}; | }; | ||||
/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE | /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE | ||||
@@ -831,28 +846,28 @@ namespace lol { | |||||
const unsigned char | const unsigned char | ||||
SceneSetupParser::yydefact_[] = | SceneSetupParser::yydefact_[] = | ||||
{ | { | ||||
0, 11, 0, 0, 0, 0, 0, 0, 3, 5, | |||||
6, 8, 9, 10, 18, 20, 0, 12, 0, 13, | |||||
14, 16, 0, 15, 30, 0, 1, 2, 4, 7, | |||||
18, 20, 0, 19, 21, 0, 0, 31, 17, 19, | |||||
21, 26, 0, 28, 0, 32, 0, 0, 27, 0, | |||||
29 | |||||
0, 11, 0, 0, 0, 0, 0, 0, 0, 3, | |||||
5, 6, 8, 9, 10, 20, 22, 0, 12, 0, | |||||
13, 14, 16, 0, 15, 18, 17, 32, 0, 1, | |||||
2, 4, 7, 20, 22, 0, 21, 23, 0, 0, | |||||
33, 19, 21, 23, 28, 0, 30, 0, 34, 0, | |||||
0, 29, 0, 31 | |||||
}; | }; | ||||
/* YYPGOTO[NTERM-NUM]. */ | /* YYPGOTO[NTERM-NUM]. */ | ||||
const signed char | const signed char | ||||
SceneSetupParser::yypgoto_[] = | SceneSetupParser::yypgoto_[] = | ||||
{ | { | ||||
-17, -17, 21, -17, -17, 29, -17, -17, -17, -16, | |||||
8, 36, -17, -17, 4 | |||||
-18, -18, 22, -18, -18, 31, -18, -18, -18, -17, | |||||
7, 40, 39, -18, 5 | |||||
}; | }; | ||||
/* YYDEFGOTO[NTERM-NUM]. */ | /* YYDEFGOTO[NTERM-NUM]. */ | ||||
const signed char | const signed char | ||||
SceneSetupParser::yydefgoto_[] = | SceneSetupParser::yydefgoto_[] = | ||||
{ | { | ||||
-1, 6, 7, 8, 9, 10, 11, 12, 13, 17, | |||||
34, 19, 23, 25, 38 | |||||
-1, 7, 8, 9, 10, 11, 12, 13, 14, 18, | |||||
37, 20, 24, 28, 41 | |||||
}; | }; | ||||
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If | /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If | ||||
@@ -862,22 +877,22 @@ namespace lol { | |||||
const unsigned char | const unsigned char | ||||
SceneSetupParser::yytable_[] = | SceneSetupParser::yytable_[] = | ||||
{ | { | ||||
33, 37, 35, 14, 15, 18, 36, 14, 15, 16, | |||||
21, 41, 22, 16, 24, 43, 39, 14, 15, 42, | |||||
44, 30, 31, 16, 26, 27, 46, 32, 47, 28, | |||||
48, 49, 1, 2, 3, 4, 5, 50, 29, 20, | |||||
40, 45 | |||||
36, 29, 38, 15, 16, 19, 39, 15, 16, 17, | |||||
22, 44, 23, 17, 25, 46, 23, 27, 42, 15, | |||||
16, 45, 47, 33, 34, 17, 30, 40, 49, 35, | |||||
50, 31, 51, 52, 1, 2, 3, 4, 5, 6, | |||||
53, 32, 43, 21, 26, 48 | |||||
}; | }; | ||||
/* YYCHECK. */ | /* YYCHECK. */ | ||||
const unsigned char | const unsigned char | ||||
SceneSetupParser::yycheck_[] = | SceneSetupParser::yycheck_[] = | ||||
{ | { | ||||
16, 12, 18, 10, 11, 17, 22, 10, 11, 16, | |||||
15, 18, 17, 16, 13, 18, 32, 10, 11, 35, | |||||
36, 10, 11, 16, 0, 0, 42, 16, 44, 8, | |||||
18, 47, 4, 5, 6, 7, 8, 18, 9, 3, | |||||
32, 37 | |||||
17, 0, 19, 11, 12, 18, 23, 11, 12, 17, | |||||
16, 19, 18, 17, 16, 19, 18, 14, 35, 11, | |||||
12, 38, 39, 11, 12, 17, 0, 13, 45, 17, | |||||
47, 9, 19, 50, 4, 5, 6, 7, 8, 9, | |||||
19, 10, 35, 3, 5, 40 | |||||
}; | }; | ||||
/* STOS_[STATE-NUM] -- The (internal number of the) accessing | /* STOS_[STATE-NUM] -- The (internal number of the) accessing | ||||
@@ -885,12 +900,12 @@ namespace lol { | |||||
const unsigned char | const unsigned char | ||||
SceneSetupParser::yystos_[] = | SceneSetupParser::yystos_[] = | ||||
{ | { | ||||
0, 4, 5, 6, 7, 8, 20, 21, 22, 23, | |||||
24, 25, 26, 27, 10, 11, 16, 28, 17, 30, | |||||
30, 15, 17, 31, 13, 32, 0, 0, 21, 24, | |||||
10, 11, 16, 28, 29, 28, 28, 12, 33, 28, | |||||
29, 18, 28, 18, 28, 33, 28, 28, 18, 28, | |||||
18 | |||||
0, 4, 5, 6, 7, 8, 9, 21, 22, 23, | |||||
24, 25, 26, 27, 28, 11, 12, 17, 29, 18, | |||||
31, 31, 16, 18, 32, 16, 32, 14, 33, 0, | |||||
0, 22, 25, 11, 12, 17, 29, 30, 29, 29, | |||||
13, 34, 29, 30, 19, 29, 19, 29, 34, 29, | |||||
29, 19, 29, 19 | |||||
}; | }; | ||||
#if YYDEBUG | #if YYDEBUG | ||||
@@ -900,7 +915,7 @@ namespace lol { | |||||
SceneSetupParser::yytoken_number_[] = | SceneSetupParser::yytoken_number_[] = | ||||
{ | { | ||||
0, 256, 257, 258, 259, 260, 261, 262, 263, 264, | 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, | ||||
265, 266, 267, 268, 269, 270, 45, 40, 41 | |||||
265, 266, 267, 268, 269, 270, 271, 45, 40, 41 | |||||
}; | }; | ||||
#endif | #endif | ||||
@@ -908,10 +923,10 @@ namespace lol { | |||||
const unsigned char | const unsigned char | ||||
SceneSetupParser::yyr1_[] = | SceneSetupParser::yyr1_[] = | ||||
{ | { | ||||
0, 19, 20, 21, 21, 22, 23, 23, 24, 24, | |||||
24, 25, 25, 26, 26, 26, 26, 27, 28, 28, | |||||
28, 28, 29, 29, 29, 29, 30, 30, 31, 31, | |||||
32, 33, 33 | |||||
0, 20, 21, 22, 22, 23, 24, 24, 25, 25, | |||||
25, 26, 26, 27, 27, 27, 27, 27, 27, 28, | |||||
29, 29, 29, 29, 30, 30, 30, 30, 31, 31, | |||||
32, 32, 33, 34, 34 | |||||
}; | }; | ||||
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ | /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ | ||||
@@ -919,9 +934,9 @@ namespace lol { | |||||
SceneSetupParser::yyr2_[] = | SceneSetupParser::yyr2_[] = | ||||
{ | { | ||||
0, 2, 2, 1, 2, 1, 1, 2, 1, 1, | 0, 2, 2, 1, 2, 1, 1, 2, 1, 1, | ||||
1, 1, 2, 2, 2, 2, 2, 3, 1, 2, | |||||
1, 2, 1, 2, 1, 2, 3, 5, 3, 6, | |||||
1, 1, 2 | |||||
1, 1, 2, 2, 2, 2, 2, 2, 2, 3, | |||||
1, 2, 1, 2, 1, 2, 1, 2, 3, 5, | |||||
3, 6, 1, 1, 2 | |||||
}; | }; | ||||
#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE | #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE | ||||
@@ -931,9 +946,9 @@ namespace lol { | |||||
const SceneSetupParser::yytname_[] = | const SceneSetupParser::yytname_[] = | ||||
{ | { | ||||
"T_END", "error", "$undefined", "T_COLOR", "T_ADDLIGHT", | "T_END", "error", "$undefined", "T_COLOR", "T_ADDLIGHT", | ||||
"T_OBJPOSITION", "T_OBJLOOKAT", "T_OBJCOLOR", "T_CUSTOMCMD", "T_ERROR", | |||||
"F_NUMBER", "I_NUMBER", "STRING", "STRING_VAR", "BOOLEAN", "COLOR", | |||||
"'-'", "'('", "')'", "$accept", "sstp_description", | |||||
"T_OBJPOSITION", "T_OBJLOOKAT", "T_OBJCOLOR", "T_CLEARCOLOR", | |||||
"T_CUSTOMCMD", "T_ERROR", "F_NUMBER", "I_NUMBER", "STRING", "STRING_VAR", | |||||
"BOOLEAN", "COLOR", "'-'", "'('", "')'", "$accept", "sstp_description", | |||||
"sstp_expression_list", "sstp_expression", "sstp_command_list", | "sstp_expression_list", "sstp_expression", "sstp_command_list", | ||||
"sstp_command", "light_command", "setup_command", "custom_command", "fv", | "sstp_command", "light_command", "setup_command", "custom_command", "fv", | ||||
"iv", "v3", "v4", "svv", "sv", 0 | "iv", "v3", "v4", "svv", "sv", 0 | ||||
@@ -945,16 +960,16 @@ namespace lol { | |||||
const SceneSetupParser::rhs_number_type | const SceneSetupParser::rhs_number_type | ||||
SceneSetupParser::yyrhs_[] = | SceneSetupParser::yyrhs_[] = | ||||
{ | { | ||||
20, 0, -1, 21, 0, -1, 22, -1, 22, 21, | |||||
-1, 23, -1, 24, -1, 23, 24, -1, 25, -1, | |||||
26, -1, 27, -1, 4, -1, 4, 28, -1, 5, | |||||
30, -1, 6, 30, -1, 7, 31, -1, 7, 15, | |||||
-1, 8, 32, 33, -1, 10, -1, 16, 28, -1, | |||||
11, -1, 16, 29, -1, 11, -1, 16, 29, -1, | |||||
10, -1, 16, 28, -1, 17, 28, 18, -1, 17, | |||||
28, 28, 28, 18, -1, 17, 28, 18, -1, 17, | |||||
28, 28, 28, 28, 18, -1, 13, -1, 12, -1, | |||||
12, 33, -1 | |||||
21, 0, -1, 22, 0, -1, 23, -1, 23, 22, | |||||
-1, 24, -1, 25, -1, 24, 25, -1, 26, -1, | |||||
27, -1, 28, -1, 4, -1, 4, 29, -1, 5, | |||||
31, -1, 6, 31, -1, 7, 32, -1, 7, 16, | |||||
-1, 8, 32, -1, 8, 16, -1, 9, 33, 34, | |||||
-1, 11, -1, 17, 29, -1, 12, -1, 17, 30, | |||||
-1, 12, -1, 17, 30, -1, 11, -1, 17, 29, | |||||
-1, 18, 29, 19, -1, 18, 29, 29, 29, 19, | |||||
-1, 18, 29, 19, -1, 18, 29, 29, 29, 29, | |||||
19, -1, 14, -1, 13, -1, 13, 34, -1 | |||||
}; | }; | ||||
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in | /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in | ||||
@@ -963,9 +978,9 @@ namespace lol { | |||||
SceneSetupParser::yyprhs_[] = | SceneSetupParser::yyprhs_[] = | ||||
{ | { | ||||
0, 0, 3, 6, 8, 11, 13, 15, 18, 20, | 0, 0, 3, 6, 8, 11, 13, 15, 18, 20, | ||||
22, 24, 26, 29, 32, 35, 38, 41, 45, 47, | |||||
50, 52, 55, 57, 60, 62, 65, 69, 75, 79, | |||||
86, 88, 90 | |||||
22, 24, 26, 29, 32, 35, 38, 41, 44, 47, | |||||
51, 53, 56, 58, 61, 63, 66, 68, 71, 75, | |||||
81, 85, 92, 94, 96 | |||||
}; | }; | ||||
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ | /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ | ||||
@@ -973,9 +988,9 @@ namespace lol { | |||||
SceneSetupParser::yyrline_[] = | SceneSetupParser::yyrline_[] = | ||||
{ | { | ||||
0, 90, 90, 94, 95, 99, 103, 104, 108, 109, | 0, 90, 90, 94, 95, 99, 103, 104, 108, 109, | ||||
110, 114, 115, 120, 122, 124, 126, 134, 140, 141, | |||||
142, 143, 147, 148, 149, 150, 155, 156, 165, 166, | |||||
177, 181, 185 | |||||
110, 114, 115, 120, 122, 124, 126, 131, 132, 137, | |||||
143, 144, 145, 146, 150, 151, 152, 153, 158, 159, | |||||
168, 169, 180, 184, 188 | |||||
}; | }; | ||||
// Print the state stack on the debug stream. | // Print the state stack on the debug stream. | ||||
@@ -1019,7 +1034,7 @@ namespace lol { | |||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||||
17, 18, 2, 2, 2, 16, 2, 2, 2, 2, | |||||
18, 19, 2, 2, 2, 17, 2, 2, 2, 2, | |||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||||
@@ -1042,7 +1057,7 @@ namespace lol { | |||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||||
2, 2, 2, 2, 2, 2, 1, 2, 3, 4, | 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, | ||||
5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | ||||
15 | |||||
15, 16 | |||||
}; | }; | ||||
if ((unsigned int) t <= yyuser_token_number_max_) | if ((unsigned int) t <= yyuser_token_number_max_) | ||||
return translate_table[t]; | return translate_table[t]; | ||||
@@ -1051,26 +1066,26 @@ namespace lol { | |||||
} | } | ||||
const int SceneSetupParser::yyeof_ = 0; | const int SceneSetupParser::yyeof_ = 0; | ||||
const int SceneSetupParser::yylast_ = 41; | |||||
const int SceneSetupParser::yylast_ = 45; | |||||
const int SceneSetupParser::yynnts_ = 15; | const int SceneSetupParser::yynnts_ = 15; | ||||
const int SceneSetupParser::yyempty_ = -2; | const int SceneSetupParser::yyempty_ = -2; | ||||
const int SceneSetupParser::yyfinal_ = 26; | |||||
const int SceneSetupParser::yyfinal_ = 29; | |||||
const int SceneSetupParser::yyterror_ = 1; | const int SceneSetupParser::yyterror_ = 1; | ||||
const int SceneSetupParser::yyerrcode_ = 256; | const int SceneSetupParser::yyerrcode_ = 256; | ||||
const int SceneSetupParser::yyntokens_ = 19; | |||||
const int SceneSetupParser::yyntokens_ = 20; | |||||
const unsigned int SceneSetupParser::yyuser_token_number_max_ = 270; | |||||
const unsigned int SceneSetupParser::yyuser_token_number_max_ = 271; | |||||
const SceneSetupParser::token_number_type SceneSetupParser::yyundef_token_ = 2; | const SceneSetupParser::token_number_type SceneSetupParser::yyundef_token_ = 2; | ||||
} // lol | } // lol | ||||
/* Line 1053 of lalr1.cc */ | /* Line 1053 of lalr1.cc */ | ||||
#line 1070 "generated/scenesetup-parser.cpp" | |||||
#line 1085 "generated/scenesetup-parser.cpp" | |||||
/* Line 1055 of lalr1.cc */ | /* Line 1055 of lalr1.cc */ | ||||
#line 193 "scenesetup-parser.y" | |||||
#line 196 "scenesetup-parser.y" | |||||
void lol::SceneSetupParser::error(const SceneSetupParser::location_type& l, | void lol::SceneSetupParser::error(const SceneSetupParser::location_type& l, | ||||
@@ -142,14 +142,15 @@ namespace lol { | |||||
T_OBJPOSITION = 260, | T_OBJPOSITION = 260, | ||||
T_OBJLOOKAT = 261, | T_OBJLOOKAT = 261, | ||||
T_OBJCOLOR = 262, | T_OBJCOLOR = 262, | ||||
T_CUSTOMCMD = 263, | |||||
T_ERROR = 264, | |||||
F_NUMBER = 265, | |||||
I_NUMBER = 266, | |||||
STRING = 267, | |||||
STRING_VAR = 268, | |||||
BOOLEAN = 269, | |||||
COLOR = 270 | |||||
T_CLEARCOLOR = 263, | |||||
T_CUSTOMCMD = 264, | |||||
T_ERROR = 265, | |||||
F_NUMBER = 266, | |||||
I_NUMBER = 267, | |||||
STRING = 268, | |||||
STRING_VAR = 269, | |||||
BOOLEAN = 270, | |||||
COLOR = 271 | |||||
}; | }; | ||||
}; | }; | ||||
@@ -323,7 +324,7 @@ namespace lol { | |||||
} // lol | } // lol | ||||
/* Line 34 of lalr1.cc */ | /* Line 34 of lalr1.cc */ | ||||
#line 327 "generated/scenesetup-parser.h" | |||||
#line 328 "generated/scenesetup-parser.h" | |||||
@@ -330,8 +330,8 @@ typedef unsigned char YY_CHAR; | |||||
*yy_cp = '\0'; \ | *yy_cp = '\0'; \ | ||||
(yy_c_buf_p) = yy_cp; | (yy_c_buf_p) = yy_cp; | ||||
#define YY_NUM_RULES 23 | |||||
#define YY_END_OF_BUFFER 24 | |||||
#define YY_NUM_RULES 24 | |||||
#define YY_END_OF_BUFFER 25 | |||||
/* This struct is not used in this scanner, | /* This struct is not used in this scanner, | ||||
but its presence is necessary. */ | but its presence is necessary. */ | ||||
struct yy_trans_info | struct yy_trans_info | ||||
@@ -339,16 +339,17 @@ struct yy_trans_info | |||||
flex_int32_t yy_verify; | flex_int32_t yy_verify; | ||||
flex_int32_t yy_nxt; | flex_int32_t yy_nxt; | ||||
}; | }; | ||||
static yyconst flex_int16_t yy_accept[78] = | |||||
static yyconst flex_int16_t yy_accept[87] = | |||||
{ 0, | { 0, | ||||
0, 0, 24, 22, 21, 20, 22, 22, 18, 19, | |||||
22, 17, 22, 22, 13, 22, 22, 22, 22, 22, | |||||
22, 22, 0, 14, 0, 0, 13, 12, 16, 15, | |||||
15, 15, 15, 15, 15, 15, 15, 0, 0, 16, | |||||
15, 15, 15, 15, 15, 15, 15, 6, 0, 12, | |||||
15, 15, 15, 15, 15, 15, 10, 7, 15, 4, | |||||
15, 11, 15, 15, 0, 15, 5, 3, 15, 8, | |||||
15, 15, 0, 1, 2, 9, 0 | |||||
0, 0, 25, 23, 22, 21, 23, 23, 19, 20, | |||||
23, 18, 23, 23, 14, 23, 23, 23, 23, 23, | |||||
23, 23, 0, 15, 0, 0, 14, 13, 17, 16, | |||||
16, 16, 16, 16, 16, 16, 16, 16, 0, 0, | |||||
17, 16, 16, 16, 16, 16, 16, 16, 16, 7, | |||||
0, 13, 16, 16, 16, 16, 16, 16, 16, 11, | |||||
8, 16, 16, 4, 16, 12, 16, 16, 0, 16, | |||||
16, 6, 3, 16, 9, 16, 16, 16, 0, 1, | |||||
16, 2, 10, 16, 5, 0 | |||||
} ; | } ; | ||||
static yyconst flex_int32_t yy_ec[256] = | static yyconst flex_int32_t yy_ec[256] = | ||||
@@ -391,72 +392,78 @@ static yyconst flex_int32_t yy_meta[35] = | |||||
3, 3, 3, 3 | 3, 3, 3, 3 | ||||
} ; | } ; | ||||
static yyconst flex_int16_t yy_base[89] = | |||||
static yyconst flex_int16_t yy_base[98] = | |||||
{ 0, | { 0, | ||||
0, 0, 118, 119, 119, 119, 113, 0, 119, 119, | |||||
25, 26, 104, 104, 29, 0, 95, 11, 96, 83, | |||||
82, 79, 105, 119, 0, 96, 32, 34, 0, 0, | |||||
88, 80, 73, 78, 74, 70, 67, 0, 41, 0, | |||||
74, 70, 65, 65, 71, 71, 74, 0, 81, 80, | |||||
67, 59, 60, 68, 70, 53, 0, 0, 63, 0, | |||||
57, 0, 35, 39, 0, 29, 0, 0, 22, 0, | |||||
14, 15, 0, 0, 0, 119, 119, 54, 56, 59, | |||||
61, 66, 68, 70, 72, 74, 76, 78 | |||||
0, 0, 127, 128, 128, 128, 122, 0, 128, 128, | |||||
25, 26, 113, 113, 29, 0, 104, 14, 105, 92, | |||||
91, 88, 114, 128, 0, 105, 32, 33, 0, 0, | |||||
97, 95, 88, 81, 86, 82, 78, 75, 0, 42, | |||||
0, 82, 90, 77, 72, 72, 78, 78, 81, 0, | |||||
88, 87, 74, 66, 65, 66, 74, 76, 59, 0, | |||||
0, 69, 72, 0, 62, 0, 55, 63, 0, 63, | |||||
56, 0, 0, 55, 0, 35, 37, 24, 0, 0, | |||||
20, 0, 128, 15, 0, 128, 54, 56, 59, 61, | |||||
66, 68, 70, 72, 74, 76, 78 | |||||
} ; | } ; | ||||
static yyconst flex_int16_t yy_def[89] = | |||||
static yyconst flex_int16_t yy_def[98] = | |||||
{ 0, | { 0, | ||||
77, 1, 77, 77, 77, 77, 78, 79, 77, 77, | |||||
77, 77, 77, 77, 77, 80, 80, 80, 80, 80, | |||||
80, 80, 78, 77, 81, 77, 77, 77, 82, 80, | |||||
80, 80, 80, 80, 80, 80, 80, 83, 77, 82, | |||||
80, 80, 80, 80, 80, 80, 80, 84, 77, 77, | |||||
80, 80, 80, 80, 80, 80, 80, 85, 80, 80, | |||||
80, 80, 80, 80, 86, 80, 80, 80, 80, 87, | |||||
80, 80, 88, 80, 80, 77, 0, 77, 77, 77, | |||||
77, 77, 77, 77, 77, 77, 77, 77 | |||||
86, 1, 86, 86, 86, 86, 87, 88, 86, 86, | |||||
86, 86, 86, 86, 86, 89, 89, 89, 89, 89, | |||||
89, 89, 87, 86, 90, 86, 86, 86, 91, 89, | |||||
89, 89, 89, 89, 89, 89, 89, 89, 92, 86, | |||||
91, 89, 89, 89, 89, 89, 89, 89, 89, 93, | |||||
86, 86, 89, 89, 89, 89, 89, 89, 89, 89, | |||||
94, 89, 89, 89, 89, 89, 89, 89, 95, 89, | |||||
89, 89, 89, 89, 96, 89, 89, 89, 97, 89, | |||||
89, 89, 86, 89, 89, 0, 86, 86, 86, 86, | |||||
86, 86, 86, 86, 86, 86, 86 | |||||
} ; | } ; | ||||
static yyconst flex_int16_t yy_nxt[154] = | |||||
static yyconst flex_int16_t yy_nxt[163] = | |||||
{ 0, | { 0, | ||||
4, 5, 6, 7, 8, 9, 10, 11, 12, 13, | 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, | ||||
14, 15, 16, 16, 16, 4, 17, 18, 16, 16, | 14, 15, 16, 16, 16, 4, 17, 18, 16, 16, | ||||
19, 16, 16, 16, 16, 20, 16, 16, 16, 21, | 19, 16, 16, 16, 16, 20, 16, 16, 16, 21, | ||||
16, 16, 22, 16, 26, 26, 27, 27, 26, 32, | 16, 16, 22, 16, 26, 26, 27, 27, 26, 32, | ||||
27, 26, 75, 27, 33, 28, 74, 39, 49, 49, | |||||
72, 71, 50, 39, 23, 23, 23, 23, 23, 25, | |||||
25, 30, 69, 30, 38, 38, 40, 68, 40, 40, | |||||
40, 48, 48, 58, 58, 65, 65, 70, 70, 73, | |||||
73, 76, 76, 67, 66, 64, 63, 62, 61, 60, | |||||
59, 50, 50, 57, 56, 55, 54, 53, 52, 51, | |||||
47, 46, 45, 44, 43, 42, 41, 28, 24, 37, | |||||
36, 35, 34, 31, 29, 28, 24, 77, 3, 77, | |||||
77, 77, 77, 77, 77, 77, 77, 77, 77, 77, | |||||
77, 77, 77, 77, 77, 77, 77, 77, 77, 77, | |||||
77, 77, 77, 77, 77, 77, 77, 77, 77, 77, | |||||
77, 77, 77 | |||||
27, 26, 33, 27, 28, 85, 40, 34, 84, 51, | |||||
51, 82, 40, 52, 23, 23, 23, 23, 23, 25, | |||||
25, 30, 81, 30, 39, 39, 41, 80, 41, 41, | |||||
41, 50, 50, 61, 61, 69, 69, 75, 75, 79, | |||||
79, 83, 83, 78, 77, 76, 74, 73, 72, 71, | |||||
70, 68, 67, 66, 65, 64, 63, 62, 52, 52, | |||||
60, 59, 58, 57, 56, 55, 54, 53, 49, 48, | |||||
47, 46, 45, 44, 43, 42, 28, 24, 38, 37, | |||||
36, 35, 31, 29, 28, 24, 86, 3, 86, 86, | |||||
86, 86, 86, 86, 86, 86, 86, 86, 86, 86, | |||||
86, 86, 86, 86, 86, 86, 86, 86, 86, 86, | |||||
86, 86, 86, 86, 86, 86, 86, 86, 86, 86, | |||||
86, 86 | |||||
} ; | } ; | ||||
static yyconst flex_int16_t yy_chk[154] = | |||||
static yyconst flex_int16_t yy_chk[163] = | |||||
{ 0, | { 0, | ||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||||
1, 1, 1, 1, 11, 12, 11, 12, 15, 18, | 1, 1, 1, 1, 11, 12, 11, 12, 15, 18, | ||||
15, 27, 72, 27, 18, 28, 71, 28, 39, 39, | |||||
69, 66, 39, 28, 78, 78, 78, 78, 78, 79, | |||||
79, 80, 64, 80, 81, 81, 82, 63, 82, 82, | |||||
82, 83, 83, 84, 84, 85, 85, 86, 86, 87, | |||||
87, 88, 88, 61, 59, 56, 55, 54, 53, 52, | |||||
51, 50, 49, 47, 46, 45, 44, 43, 42, 41, | |||||
37, 36, 35, 34, 33, 32, 31, 26, 23, 22, | |||||
21, 20, 19, 17, 14, 13, 7, 3, 77, 77, | |||||
77, 77, 77, 77, 77, 77, 77, 77, 77, 77, | |||||
77, 77, 77, 77, 77, 77, 77, 77, 77, 77, | |||||
77, 77, 77, 77, 77, 77, 77, 77, 77, 77, | |||||
77, 77, 77 | |||||
15, 27, 18, 27, 28, 84, 28, 18, 81, 40, | |||||
40, 78, 28, 40, 87, 87, 87, 87, 87, 88, | |||||
88, 89, 77, 89, 90, 90, 91, 76, 91, 91, | |||||
91, 92, 92, 93, 93, 94, 94, 95, 95, 96, | |||||
96, 97, 97, 74, 71, 70, 68, 67, 65, 63, | |||||
62, 59, 58, 57, 56, 55, 54, 53, 52, 51, | |||||
49, 48, 47, 46, 45, 44, 43, 42, 38, 37, | |||||
36, 35, 34, 33, 32, 31, 26, 23, 22, 21, | |||||
20, 19, 17, 14, 13, 7, 3, 86, 86, 86, | |||||
86, 86, 86, 86, 86, 86, 86, 86, 86, 86, | |||||
86, 86, 86, 86, 86, 86, 86, 86, 86, 86, | |||||
86, 86, 86, 86, 86, 86, 86, 86, 86, 86, | |||||
86, 86 | |||||
} ; | } ; | ||||
/* The intent behind this definition is that it'll catch | /* The intent behind this definition is that it'll catch | ||||
@@ -505,7 +512,7 @@ typedef lol::SceneSetupParser::token_type token_type; | |||||
#define yyterminate() return token::T_END | #define yyterminate() return token::T_END | ||||
#define YY_NO_UNISTD_H | #define YY_NO_UNISTD_H | ||||
#define YY_USER_ACTION yylloc->columns(yyleng); | #define YY_USER_ACTION yylloc->columns(yyleng); | ||||
#line 509 "generated/scenesetup-scanner.cpp" | |||||
#line 516 "generated/scenesetup-scanner.cpp" | |||||
#define INITIAL 0 | #define INITIAL 0 | ||||
@@ -617,7 +624,7 @@ YY_DECL | |||||
yylloc->step(); | yylloc->step(); | ||||
#line 621 "generated/scenesetup-scanner.cpp" | |||||
#line 628 "generated/scenesetup-scanner.cpp" | |||||
if ( !(yy_init) ) | if ( !(yy_init) ) | ||||
{ | { | ||||
@@ -670,13 +677,13 @@ yy_match: | |||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) | while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) | ||||
{ | { | ||||
yy_current_state = (int) yy_def[yy_current_state]; | yy_current_state = (int) yy_def[yy_current_state]; | ||||
if ( yy_current_state >= 78 ) | |||||
if ( yy_current_state >= 87 ) | |||||
yy_c = yy_meta[(unsigned int) yy_c]; | yy_c = yy_meta[(unsigned int) yy_c]; | ||||
} | } | ||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; | yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; | ||||
++yy_cp; | ++yy_cp; | ||||
} | } | ||||
while ( yy_current_state != 77 ); | |||||
while ( yy_current_state != 86 ); | |||||
yy_cp = (yy_last_accepting_cpos); | yy_cp = (yy_last_accepting_cpos); | ||||
yy_current_state = (yy_last_accepting_state); | yy_current_state = (yy_last_accepting_state); | ||||
@@ -718,14 +725,19 @@ YY_RULE_SETUP | |||||
YY_BREAK | YY_BREAK | ||||
case 5: | case 5: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 55 "scenesetup-scanner.l" | |||||
#line 54 "scenesetup-scanner.l" | |||||
{ return token::T_CLEARCOLOR; } | |||||
YY_BREAK | |||||
case 6: | |||||
YY_RULE_SETUP | |||||
#line 56 "scenesetup-scanner.l" | |||||
{ return token::T_CUSTOMCMD; } | { return token::T_CUSTOMCMD; } | ||||
YY_BREAK | YY_BREAK | ||||
/* ======= BASE COLOR TYPES ========================================= */ | /* ======= BASE COLOR TYPES ========================================= */ | ||||
/* COLOR */ | /* COLOR */ | ||||
case 6: | |||||
case 7: | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 59 "scenesetup-scanner.l" | |||||
#line 60 "scenesetup-scanner.l" | |||||
{ | { | ||||
uint32_t tmp = std::strtol(yytext + 1, nullptr, 16); | uint32_t tmp = std::strtol(yytext + 1, nullptr, 16); | ||||
yylval->u32val = 0x11000000u * (tmp >> 8) | yylval->u32val = 0x11000000u * (tmp >> 8) | ||||
@@ -734,9 +746,9 @@ YY_RULE_SETUP | |||||
| 0x000000ffu; | | 0x000000ffu; | ||||
return token::COLOR; } | return token::COLOR; } | ||||
YY_BREAK | YY_BREAK | ||||
case 7: | |||||
case 8: | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 66 "scenesetup-scanner.l" | |||||
#line 67 "scenesetup-scanner.l" | |||||
{ | { | ||||
uint32_t tmp = std::strtol(yytext + 1, nullptr, 16); | uint32_t tmp = std::strtol(yytext + 1, nullptr, 16); | ||||
yylval->u32val = 0x11000000u * (tmp >> 12) | yylval->u32val = 0x11000000u * (tmp >> 12) | ||||
@@ -745,106 +757,106 @@ YY_RULE_SETUP | |||||
| 0x00000011u * (tmp & 0xf); | | 0x00000011u * (tmp & 0xf); | ||||
return token::COLOR; } | return token::COLOR; } | ||||
YY_BREAK | YY_BREAK | ||||
case 8: | |||||
case 9: | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 73 "scenesetup-scanner.l" | |||||
#line 74 "scenesetup-scanner.l" | |||||
{ | { | ||||
yylval->u32val = 0xffu | yylval->u32val = 0xffu | ||||
| 0x100u * (uint32_t)std::strtol(yytext + 1, nullptr, 16); | | 0x100u * (uint32_t)std::strtol(yytext + 1, nullptr, 16); | ||||
return token::COLOR; } | return token::COLOR; } | ||||
YY_BREAK | YY_BREAK | ||||
case 9: | |||||
case 10: | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 77 "scenesetup-scanner.l" | |||||
#line 78 "scenesetup-scanner.l" | |||||
{ | { | ||||
yylval->u32val = (uint32_t)std::strtol(yytext + 1, nullptr, 16); | yylval->u32val = (uint32_t)std::strtol(yytext + 1, nullptr, 16); | ||||
return token::COLOR; } | return token::COLOR; } | ||||
YY_BREAK | YY_BREAK | ||||
/* ======= BASE DATA TYPES ========================================= */ | /* ======= BASE DATA TYPES ========================================= */ | ||||
/* BOOL */ | /* BOOL */ | ||||
case 10: | |||||
case 11: | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 83 "scenesetup-scanner.l" | |||||
#line 84 "scenesetup-scanner.l" | |||||
{ yylval->bval = true; return token::BOOLEAN; } | { yylval->bval = true; return token::BOOLEAN; } | ||||
YY_BREAK | YY_BREAK | ||||
case 11: | |||||
case 12: | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 84 "scenesetup-scanner.l" | |||||
#line 85 "scenesetup-scanner.l" | |||||
{ yylval->bval = false; return token::BOOLEAN; } | { yylval->bval = false; return token::BOOLEAN; } | ||||
YY_BREAK | YY_BREAK | ||||
/* FLOAT */ | /* FLOAT */ | ||||
case 12: | |||||
case 13: | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 86 "scenesetup-scanner.l" | |||||
#line 87 "scenesetup-scanner.l" | |||||
{ | { | ||||
yylval->fval = (float)std::atof(yytext); return token::F_NUMBER; } | yylval->fval = (float)std::atof(yytext); return token::F_NUMBER; } | ||||
YY_BREAK | YY_BREAK | ||||
/* INT */ | /* INT */ | ||||
case 13: | |||||
case 14: | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 89 "scenesetup-scanner.l" | |||||
#line 90 "scenesetup-scanner.l" | |||||
{ | { | ||||
yylval->ival = std::atoi(yytext); return token::I_NUMBER; } | yylval->ival = std::atoi(yytext); return token::I_NUMBER; } | ||||
YY_BREAK | YY_BREAK | ||||
/* STRING */ | /* STRING */ | ||||
case 14: | |||||
/* rule 14 can match eol */ | |||||
case 15: | |||||
/* rule 15 can match eol */ | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 92 "scenesetup-scanner.l" | |||||
#line 93 "scenesetup-scanner.l" | |||||
{ | { | ||||
yylval->sval = strdup(yytext); return token::STRING; } | yylval->sval = strdup(yytext); return token::STRING; } | ||||
YY_BREAK | YY_BREAK | ||||
/* STRING VAR */ | /* STRING VAR */ | ||||
case 15: | |||||
case 16: | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 95 "scenesetup-scanner.l" | |||||
#line 96 "scenesetup-scanner.l" | |||||
{ | { | ||||
yylval->svval = strdup(yytext); return token::STRING_VAR; } | yylval->svval = strdup(yytext); return token::STRING_VAR; } | ||||
YY_BREAK | YY_BREAK | ||||
/* ======= COMMENTS ======= */ | /* ======= COMMENTS ======= */ | ||||
case 16: | |||||
case 17: | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 99 "scenesetup-scanner.l" | |||||
#line 100 "scenesetup-scanner.l" | |||||
{ /* ignore this */ } | { /* ignore this */ } | ||||
YY_BREAK | YY_BREAK | ||||
/* Semantics tokens */ | /* Semantics tokens */ | ||||
case 17: | |||||
YY_RULE_SETUP | |||||
#line 102 "scenesetup-scanner.l" | |||||
{ return token_type('-'); } | |||||
YY_BREAK | |||||
case 18: | case 18: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 103 "scenesetup-scanner.l" | #line 103 "scenesetup-scanner.l" | ||||
{ return token_type('('); } | |||||
{ return token_type('-'); } | |||||
YY_BREAK | YY_BREAK | ||||
case 19: | case 19: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 104 "scenesetup-scanner.l" | #line 104 "scenesetup-scanner.l" | ||||
{ return token_type(')'); } | |||||
{ return token_type('('); } | |||||
YY_BREAK | YY_BREAK | ||||
case 20: | case 20: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 105 "scenesetup-scanner.l" | #line 105 "scenesetup-scanner.l" | ||||
{ /* ignore this */ } | |||||
{ return token_type(')'); } | |||||
YY_BREAK | YY_BREAK | ||||
case 21: | case 21: | ||||
/* rule 21 can match eol */ | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 106 "scenesetup-scanner.l" | #line 106 "scenesetup-scanner.l" | ||||
{ /* ignore this */ } | { /* ignore this */ } | ||||
YY_BREAK | YY_BREAK | ||||
case 22: | case 22: | ||||
/* rule 22 can match eol */ | |||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 107 "scenesetup-scanner.l" | #line 107 "scenesetup-scanner.l" | ||||
{ return token::T_ERROR; } | |||||
{ /* ignore this */ } | |||||
YY_BREAK | YY_BREAK | ||||
case 23: | case 23: | ||||
YY_RULE_SETUP | YY_RULE_SETUP | ||||
#line 109 "scenesetup-scanner.l" | |||||
#line 108 "scenesetup-scanner.l" | |||||
{ return token::T_ERROR; } | |||||
YY_BREAK | |||||
case 24: | |||||
YY_RULE_SETUP | |||||
#line 110 "scenesetup-scanner.l" | |||||
ECHO; | ECHO; | ||||
YY_BREAK | YY_BREAK | ||||
#line 848 "generated/scenesetup-scanner.cpp" | |||||
#line 860 "generated/scenesetup-scanner.cpp" | |||||
case YY_STATE_EOF(INITIAL): | case YY_STATE_EOF(INITIAL): | ||||
yyterminate(); | yyterminate(); | ||||
@@ -1226,7 +1238,7 @@ int yyFlexLexer::yy_get_next_buffer() | |||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) | while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) | ||||
{ | { | ||||
yy_current_state = (int) yy_def[yy_current_state]; | yy_current_state = (int) yy_def[yy_current_state]; | ||||
if ( yy_current_state >= 78 ) | |||||
if ( yy_current_state >= 87 ) | |||||
yy_c = yy_meta[(unsigned int) yy_c]; | yy_c = yy_meta[(unsigned int) yy_c]; | ||||
} | } | ||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; | yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; | ||||
@@ -1254,11 +1266,11 @@ int yyFlexLexer::yy_get_next_buffer() | |||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) | while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) | ||||
{ | { | ||||
yy_current_state = (int) yy_def[yy_current_state]; | yy_current_state = (int) yy_def[yy_current_state]; | ||||
if ( yy_current_state >= 78 ) | |||||
if ( yy_current_state >= 87 ) | |||||
yy_c = yy_meta[(unsigned int) yy_c]; | yy_c = yy_meta[(unsigned int) yy_c]; | ||||
} | } | ||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; | yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; | ||||
yy_is_jam = (yy_current_state == 77); | |||||
yy_is_jam = (yy_current_state == 86); | |||||
return yy_is_jam ? 0 : yy_current_state; | return yy_is_jam ? 0 : yy_current_state; | ||||
} | } | ||||
@@ -1745,7 +1757,7 @@ void SceneSetupfree (void * ptr ) | |||||
#define YYTABLES_NAME "yytables" | #define YYTABLES_NAME "yytables" | ||||
#line 109 "scenesetup-scanner.l" | |||||
#line 110 "scenesetup-scanner.l" | |||||
@@ -504,7 +504,7 @@ public: | |||||
while (o-- > 0) | while (o-- > 0) | ||||
{ | { | ||||
SceneSetup* new_ssetup = new SceneSetup(); | SceneSetup* new_ssetup = new SceneSetup(); | ||||
if (new_ssetup->Compile(mesh.C()) && new_ssetup->GetLightNb()) | |||||
if (new_ssetup->Compile(mesh.C()) && new_ssetup->m_lights.Count()) | |||||
{ | { | ||||
//Store current light datas, in World | //Store current light datas, in World | ||||
Array<LightData> light_datas; | Array<LightData> light_datas; | ||||
@@ -641,7 +641,7 @@ public: | |||||
m_texture_shader->SetUniform(m_texture_uni, m_default_texture->GetTexture(), 0); | m_texture_shader->SetUniform(m_texture_uni, m_default_texture->GetTexture(), 0); | ||||
#endif //NO_NACL_EM | #endif //NO_NACL_EM | ||||
g_renderer->SetClearColor(vec4(0.0f, 0.0f, 0.0f, 1.0f)); | |||||
g_renderer->SetClearColor(m_ssetup->m_clear_color); | |||||
vec3 x = vec3(1.f,0.f,0.f); | vec3 x = vec3(1.f,0.f,0.f); | ||||
vec3 y = vec3(0.f,1.f,0.f); | vec3 y = vec3(0.f,1.f,0.f); | ||||
@@ -46,7 +46,7 @@ | |||||
%token T_COLOR | %token T_COLOR | ||||
%token T_ADDLIGHT T_OBJPOSITION T_OBJLOOKAT T_OBJCOLOR | |||||
%token T_ADDLIGHT T_OBJPOSITION T_OBJLOOKAT T_OBJCOLOR T_CLEARCOLOR | |||||
%token T_CUSTOMCMD | %token T_CUSTOMCMD | ||||
%token T_END 0 | %token T_END 0 | ||||
@@ -128,6 +128,9 @@ setup_command: | |||||
vec4 vv = vec4(v) * (1.f / 255.f); | vec4 vv = vec4(v) * (1.f / 255.f); | ||||
if (uc.m_last_cmd == "ADDLIGHT") | if (uc.m_last_cmd == "ADDLIGHT") | ||||
uc.m_sstp.m_lights.Last()->SetColor(vv); } | uc.m_sstp.m_lights.Last()->SetColor(vv); } | ||||
| T_CLEARCOLOR v4 { uc.m_sstp.m_clear_color = vec4($2[0], $2[1], $2[2], $2[3]); } | |||||
| T_CLEARCOLOR COLOR { uint32_t x = $2; ivec4 v(x >> 24, (x >> 16) & 0xff, (x >> 8) & 0xff, x & 0xff); | |||||
uc.m_sstp.m_clear_color = vec4(v) * (1.f / 255.f); } | |||||
; | ; | ||||
custom_command: | custom_command: | ||||
@@ -51,6 +51,7 @@ addlight { return token::T_ADDLIGHT; } | |||||
position { return token::T_OBJPOSITION; } | position { return token::T_OBJPOSITION; } | ||||
lookat { return token::T_OBJLOOKAT; } | lookat { return token::T_OBJLOOKAT; } | ||||
color { return token::T_OBJCOLOR; } | color { return token::T_OBJCOLOR; } | ||||
clearcolor { return token::T_CLEARCOLOR; } | |||||
custom { return token::T_CUSTOMCMD; } | custom { return token::T_CUSTOMCMD; } | ||||
@@ -24,6 +24,7 @@ namespace lol | |||||
//CTor/DTor | //CTor/DTor | ||||
SceneSetup::SceneSetup() | SceneSetup::SceneSetup() | ||||
{ | { | ||||
m_clear_color = vec4(vec3::zero, 1.f); | |||||
} | } | ||||
//---- | //---- | ||||
@@ -39,8 +39,7 @@ public: | |||||
bool Shutdown(bool destroy=false); | bool Shutdown(bool destroy=false); | ||||
//-- | //-- | ||||
int GetLightNb() { return m_lights.Count(); } | |||||
vec4 m_clear_color; | |||||
Array<Light *> m_lights; | Array<Light *> m_lights; | ||||
Array<String, String> m_custom_cmd; | Array<String, String> m_custom_cmd; | ||||
}; | }; | ||||
@@ -12,7 +12,8 @@ CmdVar("vec3", ["X/Y/Z as float", " f f f", "(f f f)", "(f)"]); | |||||
//------------------------------------------------------------------------- | //------------------------------------------------------------------------- | ||||
//scene operations | //scene operations | ||||
//------------------------------------------------------------------------- | //------------------------------------------------------------------------- | ||||
CmdType(["addlight"], "Add a light to the scene.\nUse other commands after this one to fully setup.", [CmdArg("float", "type")]); | |||||
CmdType(["position"], "Set a position.\nWhen put after a light, sets its position.", [CmdArg("vec3", "pos")]); | |||||
CmdType(["color"], "Set a color.", [CmdArg("color", "color")]); | |||||
CmdType(["addlight"], "Add a light to the scene.\nUse other commands after this one to fully setup.", [CmdArg("float", "type")]); | |||||
CmdType(["position"], "Set a position.\nWhen put after a light, sets its position.", [CmdArg("vec3", "pos")]); | |||||
CmdType(["color"], "Set a color.", [CmdArg("color", "color")]); | |||||
CmdType(["clearcolor"], "Sets the color used for screen clearing.", [CmdArg("color", "color")]); | |||||