segment: Distinguish snippets from full files.
authorBen Pfaff <blp@cs.stanford.edu>
Sun, 4 Jul 2021 05:00:47 +0000 (22:00 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Mon, 5 Jul 2021 01:22:12 +0000 (18:22 -0700)
commite246f73b3dfceae79a23056fee0a18bb4a08bc33
treeb729892d8fe637bec9afe91a1012e9367d308854
parent939dd9ec5ada7d7a91560d4c1e416709d923dcf3
segment: Distinguish snippets from full files.

The comment on segmenter_init() explains what this means:

If IS_SNIPPET is false, then the segmenter will parse as if it's being
given a whole file.  This means, for example, that it will interpret -
or + at the beginning of the syntax as a separator between commands
(since - or + at the beginning of a line has this meaning).

If IS_SNIPPET is true, then the segmenter will parse as if it's being
given an isolated piece of syntax.  This means that, for example, that
it will interpret - or + at the beginning of the syntax as an operator
token or (if followed by a digit) as part of a number.
src/language/control/repeat.c
src/language/lexer/lexer.c
src/language/lexer/scan.c
src/language/lexer/scan.h
src/language/lexer/segment.c
src/language/lexer/segment.h
tests/language/lexer/scan-test.c
tests/language/lexer/segment-test.c