public List<VarDeclarationNode> Walk() { var varDecls = new List<VarDeclarationNode>(); var modifiers = Modifier.None; ITree modifierNode = node.GetChild(0); if (modifierNode.Type == (int) JavaNodeType.MODIFIER_LIST) { modifiers = new ModifierListTranslator(modifierNode).Walk(); } Type type = new TypeTranslator(node.GetChild(1)).Walk(); ITree declaratorList = node.GetChild(2); for (int i = 0; i < declaratorList.ChildCount; i++) { ITree declarator = declaratorList.GetChild(i); var varDecl = new VarDeclarationNode { Modifiers = modifiers, Type = type, Name = declarator.GetChild(0).Text, }; if (declarator.ChildCount > 1) { varDecl.Initialiser = new ExpressionTranslator(declarator.GetChild(1)).Walk(); } varDecls.Add(varDecl); } return varDecls; }
public VarDeclarationCompiler(VarDeclarationNode node) { this.node = node; }