<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><div>Procedure.m3:</div><div><br></div><div>Do we need this?</div><div>I know it isn't much, but remove it?</div><div><br></div><div><br></div><div> ELSIF (cur.token = TK.tSEMI) THEN</div><div> t.body := NEW (Body, self := t);</div><div> ProcBody.Push (t.body);</div><div> (* try accepting the Modula-2 syntax *)</div><div> Error.ID (id, "expecting \'=\' before procedure body");</div><div> GetToken (); (* ; *)</div><div> t.syms := Scope.PushNew (TRUE, id);</div><div> t.block := BlockStmt.Parse (FALSE);</div><div> t.fails := BlockStmt.ExtractFails (t.block);</div><div> t.end_origin := Scanner.offset;</div><div> final_id := MatchID ();</div><div> IF (final_id # id) THEN</div><div> Error.ID (id, "Initial name doesn\'t match final name");</div><div> END;</div><div> Scope.PopNew ();</div><div> ProcBody.Pop ();</div><div> ELSE</div><div><br></div><div><br></div><div>It always errors?</div><div><br></div><div>But I guess it errors and checks nicer than it might otherwise?</div><div><br></div><div>Why am I looking here?</div><div><br></div><div>Tangential:</div><div><br></div><div>I'm looking for where/how to model counting TRYs per "procedure"</div><div>and doing the alloca at the start of a "procedure".</div><div><br></div><div><br></div><div>"procedure"'s definition for my context is being worked on.</div><div> It appears to be three things: </div><div> 1) Things called "PROCEDURE". </div><div> 2) FINALLY blocks, sometimes </div><div> 3) "Module main" </div><div> </div><div> </div><div><br></div><div> I was looking for what they have in common already,</div><div> and it looks like maybe "ProcBody.Push".</div><div><br></div><div> </div><div> So I was looking all of them.</div><div><br></div><div> </div><div> - Jay</div><br><br> </div></body>
</html>