コード例 #1
0
ファイル: P21Reader.cs プロジェクト: JackTing/ifctoolkit
        Parameter GetParameter(Token TokenToAdd)
        {
            //Token TokenToAdd = Lexer.Tokenizer( DataStream);

            Parameter aParameter;
            switch (TokenToAdd.TokenTypeValue)
            {
                case TokenType.ENTITYINSTANCENAME:
                    aParameter = new ParamEntity((uint)TokenToAdd.IntegerValue, this);
                    break;
                case TokenType.KEYWORD:
                    aParameter = getSelectParameter(TokenToAdd.StringValue);
                    break;
                case TokenType.DOLLAR:
                    aParameter = new ParamNullValue();
                    break;
                case TokenType.INTEGER:
                    aParameter = new ParamInteger(TokenToAdd.IntegerValue);
                    break;
                case TokenType.REAL:
                    aParameter = new ParamReal(TokenToAdd.RealValue);
                    break;
                case TokenType.STRING:
                    aParameter = new ParamString(TokenToAdd.StringValue);
                    break;
                case TokenType.ENUMERATION:
                    aParameter = new ParamEnum(TokenToAdd.StringValue, this);
                    break;
                case TokenType.BINARY:
                    aParameter = new ParamBinary(SParamType.BINARY);
                    // need to update
                    break;
                case TokenType.LEFTPARENTHESIS:
                    aParameter = new ParamList(new List<Parameter>());
                    Token listToken = Lexer.Tokenizer(DataStream);
                    while (listToken.TokenTypeValue != TokenType.RIGHTPARENTHESIS)
                    {
                        Parameter subParam = GetParameter(listToken);

                        ((ParamList)aParameter).ParameterList.Add(subParam);
                        listToken = Lexer.Tokenizer(DataStream);
                    }
                    break;
                case TokenType.OMITTED:
                    aParameter = new ParamOmitted();
                    break;
                case TokenType.TRUE:
                    aParameter = new ParamBoolean(1);
                    break;
                case TokenType.FALSE:
                    aParameter = new ParamBoolean(-1);
                    break;
                case TokenType.UNKNOWN:
                    aParameter = new ParamBoolean(0);
                    break;
                case TokenType.RIGHTPARENTHESIS:
                case TokenType.COMMA:
                    TokenToAdd = Lexer.Tokenizer(DataStream);
                    aParameter = GetParameter(TokenToAdd);
                    break;
                default:
                    TokenToAdd = Lexer.Tokenizer(DataStream);
                    aParameter = GetParameter(TokenToAdd);
                    break;
            }
            return aParameter;
        }
コード例 #2
0
        Parameter GetParameter(Token TokenToAdd)
        {
            //Token TokenToAdd = Lexer.Tokenizer( DataStream);

            Parameter aParameter;

            switch (TokenToAdd.TokenTypeValue)
            {
            case TokenType.ENTITYINSTANCENAME:
                aParameter = new ParamEntity((uint)TokenToAdd.IntegerValue, this);
                break;

            case TokenType.KEYWORD:
                aParameter = getSelectParameter(TokenToAdd.StringValue);
                break;

            case TokenType.DOLLAR:
                aParameter = new ParamNullValue();
                break;

            case TokenType.INTEGER:
                aParameter = new ParamInteger(TokenToAdd.IntegerValue);
                break;

            case TokenType.REAL:
                aParameter = new ParamReal(TokenToAdd.RealValue);
                break;

            case TokenType.STRING:
                aParameter = new ParamString(TokenToAdd.StringValue);
                break;

            case TokenType.ENUMERATION:
                aParameter = new ParamEnum(TokenToAdd.StringValue, this);
                break;

            case TokenType.BINARY:
                aParameter = new ParamBinary(SParamType.BINARY);
                // need to update
                break;

            case TokenType.LEFTPARENTHESIS:
                aParameter = new ParamList(new List <Parameter>());
                Token listToken = Lexer.Tokenizer(DataStream);
                while (listToken.TokenTypeValue != TokenType.RIGHTPARENTHESIS)
                {
                    Parameter subParam = GetParameter(listToken);

                    ((ParamList)aParameter).ParameterList.Add(subParam);
                    listToken = Lexer.Tokenizer(DataStream);
                }
                break;

            case TokenType.OMITTED:
                aParameter = new ParamOmitted();
                break;

            case TokenType.TRUE:
                aParameter = new ParamBoolean(1);
                break;

            case TokenType.FALSE:
                aParameter = new ParamBoolean(-1);
                break;

            case TokenType.UNKNOWN:
                aParameter = new ParamBoolean(0);
                break;

            case TokenType.RIGHTPARENTHESIS:
            case TokenType.COMMA:
                TokenToAdd = Lexer.Tokenizer(DataStream);
                aParameter = GetParameter(TokenToAdd);
                break;

            default:
                TokenToAdd = Lexer.Tokenizer(DataStream);
                aParameter = GetParameter(TokenToAdd);
                break;
            }
            return(aParameter);
        }
コード例 #3
0
ファイル: P21Reader.cs プロジェクト: JackTing/ifctoolkit
        Parameter AddParameterValue(Instance cInstance, Token TokenToAdd)
        {
            //Token TokenToAdd = Lexer.Tokenizer( DataStream);

            Parameter aParameter;
            switch (TokenToAdd.TokenTypeValue)
            {
                case TokenType.ENTITYINSTANCENAME:
                    //aParameter = new EntityInstanceParameter(TokenToAdd.IntegerValue);
                    //if(DataSet.DataList.ContainsKey(TokenToAdd.IntegerValue))
                    aParameter = new ParamEntity((uint)TokenToAdd.IntegerValue, cInstance, this);
                    //new Parameter(ParameterType.ENTITY_INSTANCE_NAME, TokenToAdd.IntegerValue);
                    break;
                case TokenType.KEYWORD:
                    aParameter = getSelectParameter(TokenToAdd.StringValue);
                    //new Parameter(AddSimpleRecord(TokenToAdd.StringValue, DataStream));
                    break;
                case TokenType.DOLLAR:
                    aParameter = new ParamNullValue();
                    //new Parameter(ParameterType.NULL_VALUE);
                    break;
                case TokenType.INTEGER:
                    aParameter = new ParamInteger(TokenToAdd.IntegerValue);
                    //new Parameter(ParameterType.INTEGER, TokenToAdd.IntegerValue);
                    //InstanceData.aDataSectionList[HeaderCounter -1].DataList[0];
                    break;
                case TokenType.REAL:
                    aParameter = new ParamReal(TokenToAdd.RealValue);
                    //new Parameter(TokenToAdd.RealValue);
                    break;
                case TokenType.STRING:
                    aParameter = new ParamString(TokenToAdd.StringValue);
                    //new Parameter(ParameterType.STRING, TokenToAdd.StringValue, DataSet);
                    break;
                case TokenType.ENUMERATION:
                    aParameter = new ParamEnum(TokenToAdd.StringValue, this);
                    //new Parameter(ParameterType.ENUMERATION, TokenToAdd.StringValue, DataSet);
                    break;
                case TokenType.BINARY:
                    //aParameter = new Parameter(ParameterType.BINARY);
                    aParameter = new ParamBinary(SParamType.BINARY);
                    // need to update
                    break;
                case TokenType.LEFTPARENTHESIS:
                    aParameter = new ParamList(new List<Parameter>());
                    //new Parameter(new List<Parameter>());
                    Token listToken = Lexer.Tokenizer(DataStream);
                    while (listToken.TokenTypeValue != TokenType.RIGHTPARENTHESIS)
                    {
                        Parameter subParam = AddParameterValue(cInstance, listToken);

                        ((ParamList)aParameter).ParameterList.Add(subParam);
                        //List<Parameter> ParameterList = (List<Parameter>)aParameter.ParameterValue;
                        //ParameterList.Add(AddParameterValue( listToken,  DataStream));
                        listToken = Lexer.Tokenizer(DataStream);
                    }
                    break;
                case TokenType.OMITTED:
                    aParameter = new ParamOmitted();
                    //new Parameter(ParameterType.OMITTED_PARAMETER);
                    break;
                case TokenType.TRUE:
                    aParameter = new ParamBoolean(1);
                    break;
                case TokenType.FALSE:
                    aParameter = new ParamBoolean(-1);
                    break;
                case TokenType.UNKNOWN:
                    aParameter = new ParamBoolean(0);
                    break;
                case TokenType.RIGHTPARENTHESIS:
                case TokenType.COMMA:
                    //Console.WriteLine("not defined condition : " + TokenToAdd.TokenTypeValue.ToString());
                    TokenToAdd = Lexer.Tokenizer(DataStream);
                    aParameter = AddParameterValue(cInstance, TokenToAdd);
                    break;
                default:
                    //Console.WriteLine("not defined condition : " + TokenToAdd.TokenTypeValue.ToString());
                    TokenToAdd = Lexer.Tokenizer(DataStream);
                    aParameter = AddParameterValue(cInstance, TokenToAdd);
                    break;
            }
            return aParameter;
        }
コード例 #4
0
        Parameter AddParameterValue(Instance cInstance, Token TokenToAdd)
        {
            //Token TokenToAdd = Lexer.Tokenizer( DataStream);

            Parameter aParameter;

            switch (TokenToAdd.TokenTypeValue)
            {
            case TokenType.ENTITYINSTANCENAME:
                //aParameter = new EntityInstanceParameter(TokenToAdd.IntegerValue);
                //if(DataSet.DataList.ContainsKey(TokenToAdd.IntegerValue))
                aParameter = new ParamEntity((uint)TokenToAdd.IntegerValue, cInstance, this);
                //new Parameter(ParameterType.ENTITY_INSTANCE_NAME, TokenToAdd.IntegerValue);
                break;

            case TokenType.KEYWORD:
                aParameter = getSelectParameter(TokenToAdd.StringValue);
                //new Parameter(AddSimpleRecord(TokenToAdd.StringValue, DataStream));
                break;

            case TokenType.DOLLAR:
                aParameter = new ParamNullValue();
                //new Parameter(ParameterType.NULL_VALUE);
                break;

            case TokenType.INTEGER:
                aParameter = new ParamInteger(TokenToAdd.IntegerValue);
                //new Parameter(ParameterType.INTEGER, TokenToAdd.IntegerValue);
                //InstanceData.aDataSectionList[HeaderCounter -1].DataList[0];
                break;

            case TokenType.REAL:
                aParameter = new ParamReal(TokenToAdd.RealValue);
                //new Parameter(TokenToAdd.RealValue);
                break;

            case TokenType.STRING:
                aParameter = new ParamString(TokenToAdd.StringValue);
                //new Parameter(ParameterType.STRING, TokenToAdd.StringValue, DataSet);
                break;

            case TokenType.ENUMERATION:
                aParameter = new ParamEnum(TokenToAdd.StringValue, this);
                //new Parameter(ParameterType.ENUMERATION, TokenToAdd.StringValue, DataSet);
                break;

            case TokenType.BINARY:
                //aParameter = new Parameter(ParameterType.BINARY);
                aParameter = new ParamBinary(SParamType.BINARY);
                // need to update
                break;

            case TokenType.LEFTPARENTHESIS:
                aParameter = new ParamList(new List <Parameter>());
                //new Parameter(new List<Parameter>());
                Token listToken = Lexer.Tokenizer(DataStream);
                while (listToken.TokenTypeValue != TokenType.RIGHTPARENTHESIS)
                {
                    Parameter subParam = AddParameterValue(cInstance, listToken);

                    ((ParamList)aParameter).ParameterList.Add(subParam);
                    //List<Parameter> ParameterList = (List<Parameter>)aParameter.ParameterValue;
                    //ParameterList.Add(AddParameterValue( listToken,  DataStream));
                    listToken = Lexer.Tokenizer(DataStream);
                }
                break;

            case TokenType.OMITTED:
                aParameter = new ParamOmitted();
                //new Parameter(ParameterType.OMITTED_PARAMETER);
                break;

            case TokenType.TRUE:
                aParameter = new ParamBoolean(1);
                break;

            case TokenType.FALSE:
                aParameter = new ParamBoolean(-1);
                break;

            case TokenType.UNKNOWN:
                aParameter = new ParamBoolean(0);
                break;

            case TokenType.RIGHTPARENTHESIS:
            case TokenType.COMMA:
                //Console.WriteLine("not defined condition : " + TokenToAdd.TokenTypeValue.ToString());
                TokenToAdd = Lexer.Tokenizer(DataStream);
                aParameter = AddParameterValue(cInstance, TokenToAdd);
                break;

            default:
                //Console.WriteLine("not defined condition : " + TokenToAdd.TokenTypeValue.ToString());
                TokenToAdd = Lexer.Tokenizer(DataStream);
                aParameter = AddParameterValue(cInstance, TokenToAdd);
                break;
            }
            return(aParameter);
        }