1 /*---------------------------------------------------------------------------*\
5 * Copyright (C) 2000-2002 by the OpenSG Forum *
9 * contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de *
11 \*---------------------------------------------------------------------------*/
12 /*---------------------------------------------------------------------------*\
15 * This library is free software; you can redistribute it and/or modify it *
16 * under the terms of the GNU Library General Public License as published *
17 * by the Free Software Foundation, version 2. *
19 * This library is distributed in the hope that it will be useful, but *
20 * WITHOUT ANY WARRANTY; without even the implied warranty of *
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
22 * Library General Public License for more details. *
24 * You should have received a copy of the GNU Library General Public *
25 * License along with this library; if not, write to the Free Software *
26 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
28 \*---------------------------------------------------------------------------*/
29 /*---------------------------------------------------------------------------*\
37 \*---------------------------------------------------------------------------*/
39 /* Author: Patrick Daehne */
45 const char *stringVal;
51 #if __GNUC__ >= 4 || __GNUC_MINOR__ >=3
52 #pragma GCC diagnostic warning "-Wold-style-cast"
55 //#define YYPARSE_PARAM pSkel
56 //#define YYLEX_PARAM pSkel
58 #define OSGScanParseSkel_error SKEL->handleError
60 #include "OSGConfig.h"
61 #include "OSGBaseFunctions.h"
62 #include "OSGMatrix.h"
63 #include "OSGScanParseLexer.h"
64 #include "OSGScanParseSkel.h"
68 #if defined(OSG_LINUX_ICC) || defined(OSG_WIN32_ICL)
69 #pragma warning( disable : 193 810 177 )
74 #ifdef OSG_USE_OSG2_NAMESPACE
75 #define OSGScanParseSkel_lex OSG2ScanParseSkel_lex
78 int OSGScanParseSkel_lex(YYSTYPE *lvalp, void *);
80 #define SKEL (static_cast<ScanParseSkel *>(pSkel))
82 #if(!defined(__GNUC__) && defined(__ICL) && __INTEL_COMPILER_VERSION >= 900)
83 # define alloca(size) __builtin_alloca (size)
88 %lex-param { void *pSkel }
89 %parse-param { void *pSkel }
91 %token <stringVal> TOK_HEADER
98 %token TOK_EXTERNPROTO
113 %token TOK_exposedField
116 %token <intVal> TOK_MFBool
117 %token <intVal> TOK_MFColor
118 %token <intVal> TOK_MFColorRGBA
119 %token <intVal> TOK_MFDouble
120 %token <intVal> TOK_MFFloat
121 %token <intVal> TOK_MFImage
122 %token <intVal> TOK_MFInt32
123 %token <intVal> TOK_MFMatrix3d
124 %token <intVal> TOK_MFMatrix3f
125 %token <intVal> TOK_MFMatrix4d
126 %token <intVal> TOK_MFMatrix4f
127 %token <intVal> TOK_MFNode
128 %token <intVal> TOK_MFRotation
129 %token <intVal> TOK_MFString
130 %token <intVal> TOK_MFTime
131 %token <intVal> TOK_MFVec2d
132 %token <intVal> TOK_MFVec2f
133 %token <intVal> TOK_MFVec3d
134 %token <intVal> TOK_MFVec3f
135 %token <intVal> TOK_MFVec4d
136 %token <intVal> TOK_MFVec4f
137 %token <intVal> TOK_SFBool
138 %token <intVal> TOK_SFColor
139 %token <intVal> TOK_SFColorRGBA
140 %token <intVal> TOK_SFDouble
141 %token <intVal> TOK_SFFloat
142 %token <intVal> TOK_SFImage
143 %token <intVal> TOK_SFInt32
144 %token <intVal> TOK_SFMatrix3d
145 %token <intVal> TOK_SFMatrix3f
146 %token <intVal> TOK_SFMatrix4d
147 %token <intVal> TOK_SFMatrix4f
148 %token <intVal> TOK_SFNode
149 %token <intVal> TOK_SFRotation
150 %token <intVal> TOK_SFString
151 %token <intVal> TOK_SFTime
152 %token <intVal> TOK_SFVec2d
153 %token <intVal> TOK_SFVec2f
154 %token <intVal> TOK_SFVec3d
155 %token <intVal> TOK_SFVec3f
156 %token <intVal> TOK_SFVec4d
157 %token <intVal> TOK_SFVec4f
158 /* The following types are not VRML conformant */
159 %token <intVal> TOK_MFColor4i
160 %token <intVal> TOK_MFPnt2f
161 %token <intVal> TOK_MFPnt3f
162 %token <intVal> TOK_MFPnt4f
163 %token <intVal> TOK_MFPlane
164 %token <intVal> TOK_SFColor4i
165 %token <intVal> TOK_SFPnt2f
166 %token <intVal> TOK_SFPnt3f
167 %token <intVal> TOK_SFPnt4f
168 %token <intVal> TOK_SFPlane
169 %token <intVal> TOK_SFVolume
170 %token <intVal> TOK_SFVec2i
171 %token <intVal> TOK_SFVec3i
172 %token <intVal> TOK_MFVec2i
174 %token <intVal> TOK_hex
175 %token <intVal> TOK_int32
176 %token <doubleVal> TOK_double
177 %token <stringVal> TOK_string
178 %token <boolVal> TOK_bool
180 %token <stringVal> TOK_Id
182 %token TOK_ImageFinished
186 %token TOK_ClusterLocal
187 %token TOK_ThreadLocal
189 %type <stringVal> profileNameId
190 %type <stringVal> componentNameId
191 /*%type <intVal> componentSupportLevel*/
192 %type <stringVal> metakey
193 %type <stringVal> metavalue
194 %type <stringVal> asStatement
195 %type <stringVal> nodeNameId
196 %type <stringVal> nodeTypeId
197 %type <stringVal> fieldId
198 %type <stringVal> eventInId
199 %type <stringVal> eventOutId
200 %type <intVal> fieldType
201 %type <intVal> fieldValue
202 %type <intVal> fieldEnd
203 %type <intVal> fieldDeclarationEnd
206 %type <doubleVal> double
207 %type <floatVal> float
221 TOK_HEADER { if(SKEL->verifyHeader($1) == false) { YYABORT; } }
222 | /* empty */{ if(SKEL->checkHeader() == true) { YYABORT; } }
225 TOK_PROFILE profileNameId { SKEL->profileElement($2); }
232 componentStatements componentStatement
236 /* Not VRML conformant */
239 { SKEL->componentElement($2); };
245 componentSupportLevel:
250 metaStatements metaStatement
256 { SKEL->_tmpString1 = $2; }
258 { SKEL->metaElement(SKEL->_tmpString1.c_str(), $4); };
279 nodeTypeId { SKEL->beginNode($1, 0); }
282 nodeNameId { SKEL->_tmpString1 = $2; }
283 nodeTypeId { SKEL->beginNode($4, SKEL->_tmpString1.c_str()); }
286 nodeNameId { SKEL->use($2); };
290 nodeTypeId { SKEL->_tmpString1 = $1;
291 SKEL->_tmpBitVector1 =
292 TypeTraits<BitVector>::BitsClear; }
293 nodeOptionStatement { SKEL->beginNode(SKEL->_tmpString1.c_str(),
295 SKEL->_tmpBitVector1 ); }
298 nodeNameId { SKEL->_tmpString1 = $2;
299 SKEL->_tmpBitVector1 =
300 TypeTraits<BitVector>::BitsClear; }
301 nodeTypeId { SKEL->_tmpString2 = $4; }
302 nodeOptionStatement { SKEL->beginNode(SKEL->_tmpString2.c_str(),
303 SKEL->_tmpString1.c_str(),
304 SKEL->_tmpBitVector1 ); }
307 nodeNameId { SKEL->use($2); };
314 nodeOptions nodeOption
318 TOK_ClusterLocal { SKEL->_tmpBitVector1 |= FCLocal::Cluster; }
319 | TOK_ThreadLocal { SKEL->_tmpBitVector1 |= FCLocal::MT; };
326 protoStatements protoStatement
330 TOK_PROTO nodeTypeId { SKEL->beginProto($2); }
331 '[' interfaceDeclarations ']' { SKEL->endProtoInterface(); }
332 '{' statements '}' { SKEL->endProto(); }; /* Not VRML conformant */
334 interfaceDeclarations:
335 interfaceDeclarations interfaceDeclaration
338 interfaceDeclaration:
340 fieldType { SKEL->_tmpString1 = SKEL->getLexer()->YYText(); }
341 eventInId { SKEL->beginEventInDecl(SKEL->_tmpString1.c_str(), $2, $4); SKEL->endEventDecl(); }
343 fieldType { SKEL->_tmpString1 = SKEL->getLexer()->YYText(); }
344 eventOutId { SKEL->beginEventOutDecl(SKEL->_tmpString1.c_str(), $2, $4); SKEL->endEventDecl(); }
346 fieldType { SKEL->_tmpString1 = SKEL->getLexer()->YYText(); }
347 fieldId { SKEL->beginFieldDecl(SKEL->_tmpString1.c_str(), $2, $4); SKEL->getLexer()->expectType($2); }
348 fieldValue { SKEL->endFieldDecl(); }
350 fieldType { SKEL->_tmpString1 = SKEL->getLexer()->YYText(); }
351 fieldId { SKEL->beginExposedFieldDecl(SKEL->_tmpString1.c_str(), $2, $4); SKEL->getLexer()->expectType($2); }
352 fieldValue { SKEL->endExposedFieldDecl(); };
355 TOK_EXTERNPROTO nodeTypeId { SKEL->beginExternProto($2); }
356 '[' externInterfaceDeclarations ']' { SKEL->endExternProtoInterface(); }
357 URLList { SKEL->endExternProto(); };
359 externInterfaceDeclarations:
360 externInterfaceDeclarations externInterfaceDeclaration
363 externInterfaceDeclaration:
365 fieldType { SKEL->_tmpString1 = SKEL->getLexer()->YYText(); }
366 eventInId { SKEL->addExternEventInDecl(SKEL->_tmpString1.c_str(), $2, $4); }
368 fieldType { SKEL->_tmpString1 = SKEL->getLexer()->YYText(); }
369 eventOutId { SKEL->addExternEventOutDecl(SKEL->_tmpString1.c_str(), $2, $4); }
371 fieldType { SKEL->_tmpString1 = SKEL->getLexer()->YYText(); }
372 fieldId { SKEL->addExternFieldDecl(SKEL->_tmpString1.c_str(), $2, $4); }
374 fieldType { SKEL->_tmpString1 = SKEL->getLexer()->YYText(); }
375 fieldId { SKEL->addExternExposedFieldDecl(SKEL->_tmpString1.c_str(), $2, $4); };
379 nodeNameId { SKEL->_tmpString1 = $2; }
381 eventOutId { SKEL->_tmpString2 = $5; }
383 nodeNameId { SKEL->_tmpString3 = $8; }
386 { SKEL->addRoute(SKEL->_tmpString1.c_str(), SKEL->_tmpString2.c_str(), SKEL->_tmpString3.c_str(), $11); };
390 nodeNameId { SKEL->_tmpString1 = $2; }
392 nodeNameId { SKEL->_tmpString2 = $5; }
396 SKEL->importElement(SKEL->_tmpString1.c_str(), SKEL->_tmpString2.c_str(), $7);
398 SKEL->importElement(SKEL->_tmpString1.c_str(), SKEL->_tmpString2.c_str(), 0);
403 nodeNameId { SKEL->_tmpString1 = $2; }
407 SKEL->exportElement(SKEL->_tmpString1.c_str(), $4);
409 SKEL->exportElement(SKEL->_tmpString1.c_str(), 0);
414 nodeNameId { $$ = $2; }
415 | /* empty */ { $$ = 0; };
421 '{' scriptBody '}' { SKEL->endNode(); }; /* Not VRML conformant */
424 scriptBody scriptBodyElement
430 | eventOutDeclaration
432 | exposedFieldDeclaration
437 fieldType { SKEL->_tmpString1 = SKEL->getLexer()->YYText(); }
438 eventInId { SKEL->beginEventInDecl(SKEL->_tmpString1.c_str(), $2, $4); }
439 eventDeclarationEnd { SKEL->endEventDecl(); };
443 fieldType { SKEL->_tmpString1 = SKEL->getLexer()->YYText(); }
444 eventOutId { SKEL->beginEventOutDecl(SKEL->_tmpString1.c_str(), $2, $4); }
445 eventDeclarationEnd { SKEL->endEventDecl(); };
449 | TOK_IS fieldId { SKEL->is($2); };
453 fieldType { SKEL->_tmpString1 = SKEL->getLexer()->YYText(); }
454 fieldId { SKEL->beginFieldDecl(SKEL->_tmpString1.c_str(), $2, $4); SKEL->getLexer()->expectType($2); }
455 fieldDeclarationEnd { SKEL->endFieldDecl(); };
457 TOK_Id { SKEL->_tmpString1 = SKEL->getLexer()->YYText(); }
459 SKEL->beginFieldDecl(SKEL->_tmpString1.c_str(), 0, $4);
461 Int32 iFieldTypeId = SKEL->getFieldType($4);
463 if(SKEL->getMapFieldTypes() == true)
464 iFieldTypeId = SKEL->mapExtIntFieldType($4, iFieldTypeId);
466 SKEL->getLexer()->expectType(iFieldTypeId);
468 fieldDeclarationEnd { SKEL->endFieldDecl(); };
470 exposedFieldDeclaration:
472 fieldType { SKEL->_tmpString1 = SKEL->getLexer()->YYText(); }
473 fieldId { SKEL->beginExposedFieldDecl(SKEL->_tmpString1.c_str(), $2, $4); SKEL->getLexer()->expectType($2); }
474 fieldDeclarationEnd { SKEL->endExposedFieldDecl(); };
478 | fieldType TOK_IS fieldId { SKEL->is($3); };
483 Int32 iFieldTypeId = SKEL->getFieldType($1);
484 if (SKEL->getMapFieldTypes() == true)
485 iFieldTypeId = SKEL->mapExtIntFieldType($1, iFieldTypeId);
486 SKEL->getLexer()->expectType(iFieldTypeId);
487 SKEL->beginField($1, iFieldTypeId);
489 fieldEnd { SKEL->endField(); }
497 | fieldType TOK_IS fieldId { SKEL->is($3); };
557 /* The following types are not VRML conformant */
571 TOK_MFBool mfboolValue
572 | TOK_MFColor mfcolorValue
573 | TOK_MFColorRGBA mfcolorRGBAValue
574 | TOK_MFDouble mfdoubleValue
575 | TOK_MFFloat mffloatValue
576 | TOK_MFImage mfimageValue
577 | TOK_MFInt32 mfint32Value
578 | TOK_MFMatrix3d mfmatrix3dValue
579 | TOK_MFMatrix3f mfmatrix3fValue
580 | TOK_MFMatrix4d mfmatrix4dValue
581 | TOK_MFMatrix4f mfmatrix4fValue
582 | TOK_MFNode mfnodeValue
583 | TOK_MFRotation mfrotationValue
584 | TOK_MFString mfstringValue
585 | TOK_MFTime mftimeValue
586 | TOK_MFVec2d mfvec2dValue
587 | TOK_MFVec2f mfvec2fValue
588 | TOK_MFVec3d mfvec3dValue
589 | TOK_MFVec3f mfvec3fValue
590 | TOK_MFVec4d mfvec4dValue
591 | TOK_MFVec4f mfvec4fValue
592 | TOK_SFBool sfboolValue
593 | TOK_SFColor sfcolorValue
594 | TOK_SFColorRGBA sfcolorRGBAValue
595 | TOK_SFDouble sfdoubleValue
596 | TOK_SFFloat sffloatValue
597 | TOK_SFImage sfimageValue
598 | TOK_SFInt32 sfint32Value
599 | TOK_SFMatrix3d sfmatrix3dValue
600 | TOK_SFMatrix3f sfmatrix3fValue
601 | TOK_SFMatrix4d sfmatrix4dValue
602 | TOK_SFMatrix4f sfmatrix4fValue
603 | TOK_SFNode sfnodeValue
604 | TOK_SFRotation sfrotationValue
605 | TOK_SFString sfstringValue
606 | TOK_SFTime sftimeValue
607 | TOK_SFVec2d sfvec2dValue
608 | TOK_SFVec2f sfvec2fValue
609 | TOK_SFVec3d sfvec3dValue
610 | TOK_SFVec3f sfvec3fValue
611 | TOK_SFVec4d sfvec4dValue
612 | TOK_SFVec4f sfvec4fValue
613 /* The following types are not VRML conformant */
614 | TOK_MFColor4i mfcolor4iValue
615 | TOK_MFPnt2f mfpnt2fValue
616 | TOK_MFPnt3f mfpnt3fValue
617 | TOK_MFPnt4f mfpnt4fValue
618 | TOK_MFPlane mfplaneValue
619 | TOK_SFColor4i sfcolor4iValue
620 | TOK_SFPnt2f sfpnt2fValue
621 | TOK_SFPnt3f sfpnt3fValue
622 | TOK_SFPnt4f sfpnt4fValue
623 | TOK_SFPlane sfplaneValue
624 | TOK_SFVolume sfVolumeValue;
625 | TOK_SFVec2i sfvec2iValue
626 | TOK_SFVec3i sfvec3iValue
627 | TOK_MFVec2i mfvec2iValue
631 | TOK_int32 { $$ = $1; };
634 TOK_int32 { $$ = $1; }
635 | TOK_double { $$ = $1; };
638 TOK_int32 { $$ = static_cast<float>($1); }
639 | TOK_double { $$ = static_cast<float>($1); };
644 SKEL->addBoolValue($1);
646 | TOK_Id { SKEL->addFieldValue($1); }; /* Not VRML conformant */
649 float { SKEL->beginValue(); }
650 float { SKEL->appendValue(); }
654 SKEL->addColorValue(Color3f($1, $3, $5));
658 float { SKEL->beginValue(); }
659 float { SKEL->appendValue(); }
660 float { SKEL->appendValue(); }
664 SKEL->addColorRGBAValue(Color4f($1, $3, $5, $7));
670 SKEL->addDoubleValue($1);
676 SKEL->addFloatValue($1);
680 int32 { SKEL->beginValue(); }
681 int32 { SKEL->appendValue(); }
685 SKEL->beginImage($1, $3, $5);
687 pixels TOK_ImageFinished
695 SKEL->addImagePixel($2);
702 SKEL->addInt32Value($1);
706 double { SKEL->beginValue(); }
707 double { SKEL->appendValue(); }
708 double { SKEL->appendValue(); }
709 double { SKEL->appendValue(); }
710 double { SKEL->appendValue(); }
711 double { SKEL->appendValue(); }
712 double { SKEL->appendValue(); }
713 double { SKEL->appendValue(); }
717 SKEL->addMatrix3dValue(
724 float { SKEL->beginValue(); }
725 float { SKEL->appendValue(); }
726 float { SKEL->appendValue(); }
727 float { SKEL->appendValue(); }
728 float { SKEL->appendValue(); }
729 float { SKEL->appendValue(); }
730 float { SKEL->appendValue(); }
731 float { SKEL->appendValue(); }
735 SKEL->addMatrix3fValue(
742 double { SKEL->beginValue(); }
743 double { SKEL->appendValue(); }
744 double { SKEL->appendValue(); }
745 double { SKEL->appendValue(); }
746 double { SKEL->appendValue(); }
747 double { SKEL->appendValue(); }
748 double { SKEL->appendValue(); }
749 double { SKEL->appendValue(); }
750 double { SKEL->appendValue(); }
751 double { SKEL->appendValue(); }
752 double { SKEL->appendValue(); }
753 double { SKEL->appendValue(); }
754 double { SKEL->appendValue(); }
755 double { SKEL->appendValue(); }
756 double { SKEL->appendValue(); }
760 SKEL->addMatrix4dValue(Matrix4d(
768 float { SKEL->beginValue(); }
769 float { SKEL->appendValue(); }
770 float { SKEL->appendValue(); }
771 float { SKEL->appendValue(); }
772 float { SKEL->appendValue(); }
773 float { SKEL->appendValue(); }
774 float { SKEL->appendValue(); }
775 float { SKEL->appendValue(); }
776 float { SKEL->appendValue(); }
777 float { SKEL->appendValue(); }
778 float { SKEL->appendValue(); }
779 float { SKEL->appendValue(); }
780 float { SKEL->appendValue(); }
781 float { SKEL->appendValue(); }
782 float { SKEL->appendValue(); }
786 SKEL->addMatrix4fValue(Matrix4f(
795 | TOK_NULL { SKEL->nullNode(); }
798 float { SKEL->beginValue(); }
799 float { SKEL->appendValue(); }
800 float { SKEL->appendValue(); }
804 SKEL->addRotationValue(Vec3f($1, $3, $5), $7);
810 SKEL->addStringValue($1);
813 { /* Not VRML conformant */
814 SKEL->addStringValue($1);
817 { /* Not VRML conformant */
818 SKEL->addBufferAsStringValue();
821 { /* Not VRML conformant */
822 SKEL->addBufferAsStringValue();
828 SKEL->addTimeValue($1);
832 double { SKEL->beginValue(); }
836 SKEL->addVec2dValue(Vec2d($1, $3));
840 float { SKEL->beginValue(); }
844 SKEL->addVec2fValue(Vec2f($1, $3));
848 double { SKEL->beginValue(); }
849 double { SKEL->appendValue(); }
850 double { SKEL->appendValue(); }
853 SKEL->addVec3dValue(Vec3d($1, $3, $5));
857 float { SKEL->beginValue(); }
858 float { SKEL->appendValue(); }
859 float { SKEL->appendValue(); }
862 SKEL->addVec3fValue(Vec3f($1, $3, $5));
866 double { SKEL->beginValue(); }
867 double { SKEL->appendValue(); }
868 double { SKEL->appendValue(); }
869 double { SKEL->appendValue(); }
872 SKEL->addVec4dValue(Vec4d($1, $3, $5, $7));
876 float { SKEL->beginValue(); }
877 float { SKEL->appendValue(); }
878 float { SKEL->appendValue(); }
879 float { SKEL->appendValue(); }
882 SKEL->addVec4fValue(Vec4f($1, $3, $5, $7));
887 | '[' sfboolValues ']';
890 sfboolValues sfboolValue
895 | '[' sfcolorValues ']';
898 sfcolorValues sfcolorValue
903 | '[' sfcolorRGBAValues ']';
906 sfcolorRGBAValues sfcolorRGBAValue
911 | '[' sfdoubleValues ']';
914 sfdoubleValues sfdoubleValue
919 | '[' sffloatValues ']';
922 sffloatValues sffloatValue
927 | '[' sfimageValues ']';
930 sfimageValues sfimageValue
935 | '[' sfint32Values ']';
938 sfint32Values sfint32Value
943 | '[' sfmatrix3dValues ']';
946 sfmatrix3dValues sfmatrix3dValue
951 | '[' sfmatrix3fValues ']';
954 sfmatrix3fValues sfmatrix3fValue
959 | '[' sfmatrix4dValues ']';
962 sfmatrix4dValues sfmatrix4dValue
967 | '[' sfmatrix4fValues ']';
970 sfmatrix4fValues sfmatrix4fValue
975 | '[' sfnodeValues ']';
978 sfnodeValues sfnodeValue
983 | '[' sfrotationValues ']';
986 sfrotationValues sfrotationValue
991 | '[' sfstringValues ']';
994 sfstringValues sfstringValue
999 | '[' sftimeValues ']';
1002 sftimeValues sftimeValue
1007 | '[' sfvec2dValues ']';
1010 sfvec2dValues sfvec2dValue
1015 | '[' sfvec2fValues ']';
1018 sfvec2fValues sfvec2fValue
1023 | '[' sfvec3dValues ']';
1026 sfvec3dValues sfvec3dValue
1031 | '[' sfvec3fValues ']';
1034 sfvec3fValues sfvec3fValue
1039 | '[' sfvec4dValues ']';
1042 sfvec4dValues sfvec4dValue
1047 | '[' sfvec4fValues ']';
1050 sfvec4fValues sfvec4fValue
1053 /* The following types are not VRML conformant */
1056 int32 { SKEL->beginValue(); }
1057 int32 { SKEL->appendValue(); }
1058 int32 { SKEL->appendValue(); }
1061 SKEL->appendValue();
1062 SKEL->addColor4iValue(Color4ub(static_cast<UInt8>($1), static_cast<UInt8>($3),
1063 static_cast<UInt8>($5), static_cast<UInt8>($7)));
1067 float { SKEL->beginValue(); }
1070 SKEL->appendValue();
1071 SKEL->addPnt2fValue(Pnt2f($1, $3));
1075 float { SKEL->beginValue(); }
1076 float { SKEL->appendValue(); }
1079 SKEL->appendValue();
1080 SKEL->addPnt3fValue(Pnt3f($1, $3, $5));
1084 float { SKEL->beginValue(); }
1085 float { SKEL->appendValue(); }
1086 float { SKEL->appendValue(); }
1089 SKEL->appendValue();
1090 SKEL->addPnt4fValue(Pnt4f($1, $3, $5, $7));
1094 float { SKEL->beginValue(); }
1095 float { SKEL->appendValue(); }
1096 float { SKEL->appendValue(); }
1099 SKEL->appendValue();
1100 SKEL->addPlaneValue(Plane(Vec3f($1, $3, $5), $7));
1104 int32 { SKEL->beginValue(); }
1105 float { SKEL->appendValue(); }
1106 float { SKEL->appendValue(); }
1107 float { SKEL->appendValue(); }
1108 float { SKEL->appendValue(); }
1109 float { SKEL->appendValue(); }
1112 SKEL->appendValue();
1113 BoxVolume bv($3, $5, $7, $9, $11, $13);
1117 SKEL->addVolumeValue(bv);
1121 int32 { SKEL->beginValue(); }
1124 SKEL->appendValue();
1125 SKEL->addVec2iValue(Vec2i($1, $3));
1129 int32 { SKEL->beginValue(); }
1132 SKEL->appendValue();
1136 SKEL->appendValue();
1137 SKEL->addVec3iValue(Vec3i($1, $3, $5));
1142 | '[' sfcolor4iValues ']';
1145 sfcolor4iValues sfcolor4iValue
1150 | '[' sfpnt2fValues ']';
1153 sfpnt2fValues sfpnt2fValue
1158 | '[' sfpnt3fValues ']';
1161 sfpnt3fValues sfpnt3fValue
1166 | '[' sfpnt4fValues ']';
1169 sfpnt4fValues sfpnt4fValue
1174 | '[' sfplaneValues ']';
1177 sfplaneValues sfplaneValue
1182 | '[' sfvec2iValues ']';
1185 sfvec2iValues sfvec2iValue
1190 int OSGScanParseSkel_lex(YYSTYPE *lvalp, void *pSkel)
1192 return SKEL->lex(lvalp);