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