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(); }
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); }
static public string visit(VaribleDeclaration block) { return(Constants.VARIBLE_DECLARATION); }