package cd.frontend.parser; import cd.ir.Ast.BooleanConst; import cd.ir.Ast.Expr; import cd.ir.Ast.IntConst; import cd.ir.Ast.NullConst; import cd.util.Pair; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.tree.TerminalNode; public final class JavaliAstVisitor extends JavaliBaseVisitor{ public List classDecls = new ArrayList(); private List jdField_a_of_type_JavaUtilList = new ArrayList(); private List b = new ArrayList(); private List c = new ArrayList(); private List a(JavaliParser.FormalParamListContext paramFormalParamListContext){ ArrayList localArrayList = new ArrayList(); if (paramFormalParamListContext == null) { return localArrayList; } Object localObject; int i = (localObject = paramFormalParamListContext).getTokens(42).size(); for (int j = 0; j < i; j++){ int k = j; String str = (localObject = paramFormalParamListContext).getToken(42, k).getText(); k = j; JavaliParser.TypeContext localTypeContext = (JavaliParser.TypeContext)(localObject = paramFormalParamListContext).getRuleContext(JavaliParser.TypeContext.class, k); localObject = this; localObject = (localObject = localTypeContext).getToken(38, 0) != null ? (localObject = localTypeContext).getToken(38, 0).getText() : a((JavaliParser.ReferenceTypeContext)(localObject = localTypeContext).getRuleContext(JavaliParser.ReferenceTypeContext.class, 0)); localArrayList.add(new Pair(localObject, str)); } return localArrayList; } private static String a(JavaliParser.ReferenceTypeContext paramReferenceTypeContext){ Object localObject = paramReferenceTypeContext; if (paramReferenceTypeContext.getToken(42, 0) != null){ localObject = paramReferenceTypeContext; return paramReferenceTypeContext.getToken(42, 0).getText(); } if ((localObject = paramReferenceTypeContext.a()).getToken(42, 0) != null) { return (localObject = paramReferenceTypeContext.a()).getToken(42, 0).getText() + "[]"; } return (paramReferenceTypeContext = paramReferenceTypeContext.a()).getToken(38, 0).getText() + "[]"; } class a extends JavaliBaseVisitor{ public Ast.Expr a; a(){ this.jdField_a_of_type_CdIrAst$Expr = null; } private Void a(JavaliParser.TermContext paramTermContext){ String str = paramTermContext.a.getText(); try{ switch (paramTermContext.a.getType()){ case 39: this.jdField_a_of_type_CdIrAst$Expr = new Ast.IntConst(Integer.valueOf(str, 10).intValue()); break; case 40: this.jdField_a_of_type_CdIrAst$Expr = new Ast.IntConst(Integer.valueOf(str.substring(2), 16).intValue()); break; case 41: this.jdField_a_of_type_CdIrAst$Expr = new Ast.BooleanConst(str.equals("true")); break; case 29: this.jdField_a_of_type_CdIrAst$Expr = new Ast.NullConst(); } } catch (NumberFormatException localNumberFormatException){ throw new ParseFailure(-1, "Illegal constant: " + str); } return null; } List a(JavaliParser.ActualParamListContext paramActualParamListContext){ ArrayList localArrayList = new ArrayList(); if (paramActualParamListContext == null) { return localArrayList; } Ast.Expr localExpr = this.jdField_a_of_type_CdIrAst$Expr; Iterator localIterator = (paramActualParamListContext = paramActualParamListContext).getRuleContexts(JavaliParser.ExprContext.class).iterator(); while (localIterator.hasNext()){ paramActualParamListContext = (JavaliParser.ExprContext)localIterator.next(); visit(paramActualParamListContext); localArrayList.add(this.jdField_a_of_type_CdIrAst$Expr); } this.jdField_a_of_type_CdIrAst$Expr = localExpr; return localArrayList; } } }