Esempio n. 1
0
        internal string GetNextStringToken()
        {
            object          token       = ConsumeNextToken(false, false, false);
            VRMLTokenString stringToken = token as VRMLTokenString;

            if (stringToken == null)
            {
                ErrorParsingToken("string", token);
            }

            return(stringToken.text);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }