public int VisitFuncFormalParameter(FuncFormalParameter ast, Frame frame) { var argsSize = Machine.ClosureSize; ast.Entity = new UnknownRoutine(argsSize, frame.Level, -frame.Size - argsSize); Encoder.WriteTableDetails(ast); return(argsSize); }
public Void VisitFuncFormalParameter(FuncFormalParameter ast, Void arg) { _idTable.OpenScope(); ast.Formals.Visit(this); _idTable.CloseScope(); ast.Type = ast.Type.Visit(this); _idTable.Enter(ast.Identifier, ast); CheckAndReportError(!ast.Duplicated, "duplicated formal parameter \"%\"", ast.Identifier, ast); return(null); }