Problem
The compiler recognizes the procedure section via line_like("PROCEDURE", tokens, state) (see src/aux/aux_compile_line.cpp), i.e. the model line is the word PROCEDURE with no trailing colon.
For DATA, the pattern is line_like("DATA:", ...) — with a colon.
After tokenization (split on spaces, identifiers uppercased outside strings), a source line written as:
often becomes one token PROCEDURE:, which does not equal PROCEDURE. The section is then not detected and compilation fails (e.g. Malformed statement on the next line).
A line with only:
produces token PROCEDURE and matches.
Suggestion
- Align behavior with
DATA: by also accepting PROCEDURE: (e.g. strip trailing : from the section token, or add an alternate line_like pattern), or
- Document explicitly that the colon must not be attached (and show
procedure alone in examples).
Reference
src/aux/aux_compile_line.cpp — section detection block (DATA: vs PROCEDURE).
Problem
The compiler recognizes the procedure section via
line_like("PROCEDURE", tokens, state)(seesrc/aux/aux_compile_line.cpp), i.e. the model line is the word PROCEDURE with no trailing colon.For DATA, the pattern is
line_like("DATA:", ...)— with a colon.After tokenization (split on spaces, identifiers uppercased outside strings), a source line written as:
often becomes one token
PROCEDURE:, which does not equalPROCEDURE. The section is then not detected and compilation fails (e.g. Malformed statement on the next line).A line with only:
produces token
PROCEDUREand matches.Suggestion
DATA:by also acceptingPROCEDURE:(e.g. strip trailing:from the section token, or add an alternateline_likepattern), orprocedurealone in examples).Reference
src/aux/aux_compile_line.cpp— section detection block (DATA:vsPROCEDURE).