示例#1
0
        public void process(VaribleDeclaration varibleDeclaration)
        {
            Token _identifier = (Token)varibleDeclaration.getTokensList()[0]; //рассказать про косяк сереге
            Type  type        = (Type)varibleDeclaration.getTokensList()[1];

            try //для массива
            {
                ArrayType arrayType = (ArrayType)type.getTokensList()[0];
                _isArray = true;
                _type    = (Token)arrayType.getTokensList()[0];
                _length  = (Token)arrayType.getTokensList()[1];
                SemanticAnalizer.checkIsDefineAgain(_identifier.value);
                SemanticAnalizer.checkInitEmptyArray(_identifier.value, Int32.Parse(_length.value));
                SemanticAnalizer.addVarible(_identifier.value, _type.value, Int32.Parse(_length.value));
            }
            catch  // для инта
            {
                IntegerType integerType = (IntegerType)type.getTokensList()[0];
                _isArray = false;
                _type    = (Token)integerType.getTokensList()[0];
                SemanticAnalizer.checkIsDefineAgain(_identifier.value);
                SemanticAnalizer.addVarible(_identifier.value, _type.value);
            }

            generate();
        }
示例#2
0
 void processVaribleDeclaration(VaribleDeclarationPart varibleDeclarationPart)
 {
     for (int i = 0; i < varibleDeclarationPart.children.Count; i++)
     {
         VaribleDeclaration varibleDeclaration = (VaribleDeclaration)varibleDeclarationPart.getTokensList()[i];
         DefinerProcessor   definerProcessor   = new DefinerProcessor();
         definerProcessor.process(varibleDeclaration);
     }
     //VaribleDeclaration varibleDeclaration = (VaribleDeclaration)varibleDeclarationPart.getTokensList()[0];
     //DefinerProcessor definerProcessor = new DefinerProcessor();
     //definerProcessor.process(varibleDeclaration);
 }
示例#3
0
文件: Visitor.cs 项目: licar/syntax
 static public string visit(VaribleDeclaration block)
 {
     return(Constants.VARIBLE_DECLARATION);
 }