public Ust VisitBlock(JavaParser.BlockContext context) { Statement[] statements = context.blockStatement() .Select(s => (Statement)Visit(s)) .Where(s => s != null).ToArray(); var result = new BlockStatement(statements, context.GetTextSpan()); return(result); }
public UstNode VisitMethodDeclaration(JavaParser.MethodDeclarationContext context) { JavaParser.TypeTypeOrVoidContext type = context.typeTypeOrVoid(); ITerminalNode child0Terminal = context.GetChild <ITerminalNode>(0); ITerminalNode identifier = context.IDENTIFIER(); JavaParser.FormalParametersContext formalParameters = context.formalParameters(); JavaParser.BlockContext methodBody = context.methodBody().block(); MethodDeclaration result = ConvertMethodDeclaration(type, child0Terminal, identifier, formalParameters, methodBody, context.GetTextSpan()); return(result); }
private MethodDeclaration ConvertMethodDeclaration(JavaParser.TypeTypeOrVoidContext type, ITerminalNode child0Terminal, ITerminalNode identifier, JavaParser.FormalParametersContext formalParameters, JavaParser.BlockContext methodBody, TextSpan textSpan) { TypeToken typeToken; if (type != null) { typeToken = (TypeToken)Visit(type); } else { var voidTerminal = child0Terminal; typeToken = new TypeToken(voidTerminal.GetText(), voidTerminal.GetTextSpan()); } var id = (IdToken)Visit(identifier); // TODO: Fix with ParamsNode IEnumerable <ParameterDeclaration> parameters; JavaParser.FormalParameterListContext formalParameterList = formalParameters.formalParameterList(); if (formalParameterList == null) { parameters = Enumerable.Empty <ParameterDeclaration>(); } else { parameters = formalParameterList.formalParameter() .Select(param => (ParameterDeclaration)Visit(param)) .Where(p => p != null).ToArray(); } BlockStatement body = methodBody != null ? (BlockStatement)Visit(methodBody) /*: new BlockStatement(Enumerable.Empty<Statement>(), * GetAndConvertTextSpan((ITerminalNode)context.GetChild(context.ChildCount - 1)), FileNode);*/ : null; var result = new MethodDeclaration(id, parameters, body, textSpan); return(result); }
public override bool VisitBlock([NotNull] JavaParser.BlockContext context) { return(true); }