internal string GetNextStringToken() { object token = ConsumeNextToken(false, false, false); VRMLTokenString stringToken = token as VRMLTokenString; if (stringToken == null) { ErrorParsingToken("string", token); } return(stringToken.text); }
internal X3DFieldBase ParseUntypedFieldValue() { object token = PeekNextToken(); #region sfboolValue or sfnodeValue (NULL or Node(s)) VRMLTokenIdKeywordOrFieldType idToken = token as VRMLTokenIdKeywordOrFieldType; if (idToken != null) { switch (idToken.id) { case "TRUE": GetNextIDToken(); return(new SFBool(true)); case "FALSE": GetNextIDToken(); return(new SFBool(false)); case "NULL": GetNextIDToken(); return(null); default: return(ParseNodeStatement()); } } #endregion #region mf*Values ([-Token) VRMLTokenTerminalSymbol tsToken = token as VRMLTokenTerminalSymbol; if (tsToken != null) { if (tsToken.symbol != '[') { ErrorParsingToken("[", tsToken.symbol.ToString(), "unknown type value"); } return(ParseUntypedFieldValueArray()); } #endregion #region sfstringValue VRMLTokenString strToken = token as VRMLTokenString; if (strToken != null) { return(new SFString(GetNextStringToken())); } #endregion #region sfcolorValue, sffloatValue, sfimageValue, sfint32Value, sfrotationValue, sftimeValue, sfvec2fValue or sfvec3fValue VRMLTokenNumber numberToken = token as VRMLTokenNumber; if (numberToken != null) { return(new SFNumbers(ParseUntypedFieldValueNumbers())); } #endregion return(null); }
X3DFieldBase ParseUntypedFieldValueArray() { char ts = GetNextTerminalSymbolToken(); // [ object token = PeekNextToken(); X3DFieldBase ret = null; VRMLTokenIdKeywordOrFieldType idToken = token as VRMLTokenIdKeywordOrFieldType; if (idToken != null) { ret = new MFNode(ParseUntypedFieldValueNodeArray()); } VRMLTokenString strToken = token as VRMLTokenString; if (strToken != null) { ret = new MFString(ParseUntypedFieldValueStringArray()); } VRMLTokenNumber numberToken = token as VRMLTokenNumber; if (numberToken != null) { ret = new MFNumbers(ParseUntypedFieldValueNumbers()); } ts = GetNextTerminalSymbolToken(); if (ts != ']') { ErrorParsingToken("]", ts.ToString(), "unknown type value (array)"); } if (ret == null) { ret = new MFEmpty(); } return(ret); }