[M3devel] Areas that may need attention in the frontend?

Jay K jay.krell at cornell.edu
Thu Sep 20 03:31:20 CEST 2012


Areas that may need attention in the frontend?

TryFinStmt.m3:
      CG.Start_call_direct (p.handler.cg_proc, p.handler.level, CG.Type.Void);      (* Shouldn't we pass the activation parameter here?         What value do we pass? *)      CG.Call_direct (p.handler.cg_proc, CG.Type.Void);

I'm wondering this too...like..what is the interfaceto except/finally blocks?

It appears they take two, or one, or zero parameters,depending on intepretation and context.

two parameters: _static_link exception stuff
 one parameter: _static_link 
zero parameters: the above

I think the right implmentation (assuming no significantchange to nested functions, which Tony is thinking about:) )is one parameter:
  exception stuff
and the implied/popped static_link, always.

For now, I think I'll not prototype these and use K&R definitions, yuck!

Maybe generating C++ with overloads is a good idea??


values/Procedure.m3:
    ELSIF (cur.token = TK.tSEMI) THEN      t.body := NEW (Body, self := t);      ProcBody.Push (t.body);      (* try accepting the Modula-2 syntax *)      Error.ID (id, "expecting \'=\' before procedure body");
 Probably everything after the error should be removed?Or this is an example trying to recover from parse errorsand doing best effort?

 - Jay 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20120920/653e1f4a/attachment-0001.html>


More information about the M3devel mailing list