@@ -182,9 +182,9 @@ INT_FUNCTIONS: integer variable or function
182182 " USR(" EXPR emit TOK_USR_ADDR USR_EXPR_MORE " )" emit TOK_USR_CALL
183183 " ADR(" ADR_EXPR " )"
184184 " &" ADR_EXPR
185- " Len" STR_PAR_EXPR emit TOK_PEEK # First byte of string is the length
186- " Val" STR_PAR_EXPR emit TOK_VAL
187- " ASc" STR_PAR_EXPR emit { TOK_PUSH_1, TOK_ADD, TOK_PEEK } # TODO: does not check for empty strings.
185+ " Len" STR_EXPR emit TOK_PEEK # First byte of string is the length
186+ " Val" STR_EXPR emit TOK_VAL
187+ " ASc" STR_EXPR emit { TOK_PUSH_1, TOK_ADD, TOK_PEEK } # TODO: does not check for empty strings.
188188
189189# Used to handle PADDLE/STICK/PTRIG/STRIG
190190RD_PORT:
@@ -193,9 +193,6 @@ RD_PORT:
193193PAR_EXPR: left parenthesis
194194 " (" EXPR " )"
195195
196- STR_PAR_EXPR: left parenthesis
197- " (" STR_EXPR " )"
198-
199196# Parses a continuation of an INT to BOOLean expression
200197OR_AND_BOOL:
201198 OR_EXPR_RIGHT
@@ -265,8 +262,10 @@ COMP_EXPR_MORE:
265262
266263# String expressions: base plus optional index
267264STR_EXPR: string expression
265+ " (" STR_EXPR " )"
268266 STRING_FUNCTIONS OPT_STR_INDEX
269267
268+
270269OPT_STR_INDEX:
271270 " [" emit TOK_PUSH EXPR C_EXPR " ]" emit TOK_STR_IDX OPT_STR_INDEX
272271 " [" emit TOK_PUSH EXPR " ]" emit { TOK_PUSH_BYTE, 255, TOK_STR_IDX } OPT_STR_INDEX
@@ -530,7 +529,7 @@ STATEMENT: statement
530529 " INC" VAR_WORD_LVALUE_SADDR emit TOK_INC
531530 " DEc" VAR_WORD_LVALUE_SADDR emit TOK_DEC
532531 " PRoc" E_LABEL_CREATE emit { TOK_JUMP } E_LABEL_DEF emit LT_PROC_2 E_PUSH_LT OPT_PROC_VAR
533- " ENDProc " E_POP_PROC_2 emit TOK_RET E_POP_PROC_DATA
532+ " ENdproc " E_POP_PROC_2 emit TOK_RET E_POP_PROC_DATA
534533 EXEC_CALL E_LABEL_CREATE OPT_EXEC_PARAM emit { TOK_CALL } E_DO_EXEC
535534 " DAta" DATA_VAR DATA_END
536535 " END" emit TOK_END
0 commit comments