1. Reposting : small bug in euphoria parsing
- Posted by Alan Oxley <fizzpop at icon.co.za> Jan 13, 2006
- 496 views
-- demo a tiny bug where Eu parsing breaks. -- If "trace" is coded between the procedure declaration and the -- first private variables, ie immediately after the proc dcl. -- error is "Syntax error - expected to see possibly 'end', not a type" -- Euphoria v2.5 -- workaround is to put the trace(1) after the variables declarations -- with trace procedure main() trace(1) integer i1 i1 = 0 i1 = i1 + 1 end procedure main()
Sorry for the out-of-order post, my original did not get through
2. Re: Reposting : small bug in euphoria parsing
- Posted by Robert Craig <rds at RapidEuphoria.com> Jan 13, 2006
- 464 views
Alan Oxley wrote: > }}} <eucode> > -- demo a tiny bug where Eu parsing breaks. > -- If "trace" is coded between the procedure declaration and the > -- first private variables, ie immediately after the proc dcl. > -- error is "Syntax error - expected to see possibly 'end', not a type" > -- Euphoria v2.5 > -- workaround is to put the trace(1) after the variables declarations > -- > with trace > procedure main() > trace(1) > integer i1 > i1 = 0 > i1 = i1 + 1 > end procedure > > main() > </eucode> {{{ Refman Section 2.4.2: "Variable declarations inside a subroutine must all appear at the beginning, before the executable statements of the subroutine." It says it expected to see possibly 'end', since that is one possible keyword that could legally follow a trace statement inside a routine. Regards, Rob Craig Rapid Deployment Software http://www.RapidEuphoria.com
3. Re: Reposting : small bug in euphoria parsing
- Posted by Vincent <darkvincentdude at yahoo.com> Jan 13, 2006
- 517 views
Alan Oxley wrote: > > }}} <eucode> > -- demo a tiny bug where Eu parsing breaks. > -- If "trace" is coded between the procedure declaration and the > -- first private variables, ie immediately after the proc dcl. > -- error is "Syntax error - expected to see possibly 'end', not a type" > -- Euphoria v2.5 > -- workaround is to put the trace(1) after the variables declarations > -- > with trace > procedure main() > trace(1) > integer i1 > i1 = 0 > i1 = i1 + 1 > end procedure > > main() > </eucode> {{{ > > Sorry for the out-of-order post, my original did not get through I thought that was a bug too, but it's just the way Euphoria works. Routine scoped variables must be declared at the very beginning of a routine block. Try this:
with trace procedure main() integer i1 trace(1) i1 = 0 i1 += 1 end procedure main()
Regards, Vincent