Пример #1
0
        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);
        }
Пример #2
0
 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);
 }