With the new check function, this helper method doesn't make much sense to put in the standard library. To replicate the same result, we do need to expose the current line number; adding column number is a nice bonus. Also; made it a bit clearer when a check failes in it2. Also; the builtincheckfalse was not working. Also; separated out the test input file to have more data.
87 lines
2.6 KiB
Plaintext
87 lines
2.6 KiB
Plaintext
main:
|
|
declare char
|
|
declare colno
|
|
declare lineno
|
|
|
|
calc char peek
|
|
calc colno stdincolno
|
|
calc lineno stdinlineno
|
|
check eq char "H" : "Read: H" char
|
|
check eq colno "1" : "The column number should not have advanced yet" colno
|
|
check eq lineno "1" : "The line number should not have advanced yet" lineno
|
|
skip
|
|
|
|
calc char peek
|
|
calc colno stdincolno
|
|
calc lineno stdinlineno
|
|
check eq char "e" : "Read: e" char
|
|
check eq colno "2" : "The column number should have been advanced by 1" colno
|
|
check eq lineno "1" : "The line number should not have advanced yet" lineno
|
|
skip
|
|
|
|
calc char peek
|
|
calc colno stdincolno
|
|
calc lineno stdinlineno
|
|
check eq char "l" : "Read: l" char
|
|
check eq colno "3" : "The column number should have been advanced by 2" colno
|
|
check eq lineno "1" : "The line number should not have advanced yet" lineno
|
|
skip
|
|
|
|
calc char peek
|
|
calc colno stdincolno
|
|
calc lineno stdinlineno
|
|
check eq char "l" : "Read: l" char
|
|
check eq colno "4" : "The column number should have been advanced by 3" colno
|
|
check eq lineno "1" : "The line number should not have advanced yet" lineno
|
|
skip
|
|
|
|
calc char peek
|
|
calc colno stdincolno
|
|
calc lineno stdinlineno
|
|
check eq char "o" : "Read: o" char
|
|
check eq colno "5" : "The column number should have been advanced by 4" colno
|
|
check eq lineno "1" : "The line number should not have advanced yet" lineno
|
|
skip
|
|
|
|
calc char peek
|
|
calc colno stdincolno
|
|
calc lineno stdinlineno
|
|
check eq char "!" : "Read: !" char
|
|
check eq colno "6" : "The column number should have been advanced by 5" colno
|
|
check eq lineno "1" : "The line number should not have advanced yet" lineno
|
|
skip
|
|
|
|
calc char peek
|
|
calc colno stdincolno
|
|
calc lineno stdinlineno
|
|
check eq char eol : "Read: eol" char
|
|
check eq colno "7" : "The column number should have been advanced by 6" colno
|
|
check eq lineno "1" : "The line number should not have advanced yet" lineno
|
|
skip
|
|
|
|
calc char peek
|
|
calc colno stdincolno
|
|
calc lineno stdinlineno
|
|
check eq char eol : "Read: eol" char
|
|
check eq colno "1" : "The column number should have been reset" colno
|
|
check eq lineno "2" : "The line number should have advanced by 1" lineno
|
|
skip
|
|
|
|
calc char peek
|
|
calc colno stdincolno
|
|
calc lineno stdinlineno
|
|
check eq char "T" : "Read: T" char
|
|
check eq colno "1" : "The column number should have been reset again" colno
|
|
check eq lineno "3" : "The line number should have advanced by 2" lineno
|
|
skip
|
|
|
|
calc char peek
|
|
calc colno stdincolno
|
|
calc lineno stdinlineno
|
|
check eq char "h" : "Read: h" char
|
|
check eq colno "2" : "The line number should not have been advanced by 1" colno
|
|
check eq lineno "3" : "The line number should not have advanced further" lineno
|
|
|
|
emit "Success"
|
|
/
|