diff options
| author | Marc Vertes <mvertes@free.fr> | 2023-09-01 11:42:55 +0200 |
|---|---|---|
| committer | Marc Vertes <mvertes@free.fr> | 2023-09-01 11:42:55 +0200 |
| commit | 459eca16816023fb0afdd6e0948e5406d84e5bc5 (patch) | |
| tree | b752b860d92af8421614d2d147ea953e85a25871 /scanner | |
| parent | 851c793da43be9e4d3319afe440d603c85834045 (diff) | |
parser: skip comment modes
Refctor node kind names by concatenating category and instance, to
allow better sorting. Comments are now parsed and skipped during
generation of AST.
Diffstat (limited to 'scanner')
| -rw-r--r-- | scanner/scan.go | 8 | ||||
| -rw-r--r-- | scanner/scan_test.go | 3 |
2 files changed, 9 insertions, 2 deletions
diff --git a/scanner/scan.go b/scanner/scan.go index 5644932..ac2aa17 100644 --- a/scanner/scan.go +++ b/scanner/scan.go @@ -63,8 +63,11 @@ func (t *Token) IsSeparator() bool { return t.kind == Separator } func (t *Token) Name() string { name := t.content + if t.start > 1 { + return name[:t.start] + ".." + } if t.start > 0 { - name = name[:t.start] + ".." + name[len(name)-t.end:] + return name[:t.start] + ".." + name[len(name)-t.end:] } return name } @@ -295,7 +298,8 @@ func (sc *Scanner) getStr(src string, nstart int) (s string, ok bool) { } esc = canEscape && r == '\\' && !esc } - return + ok = prop&EosValidEnd != 0 + return s, ok } func (sc *Scanner) getBlock(src string, nstart int) (s string, ok bool) { diff --git a/scanner/scan_test.go b/scanner/scan_test.go index 9eb079e..9450f62 100644 --- a/scanner/scan_test.go +++ b/scanner/scan_test.go @@ -147,6 +147,9 @@ def"`, src: "return // quit\nbegin", tok: `"return" "// quit" " " "begin" `, }, { // #19 + src: "return // quit", + tok: `"return" "// quit" `, +}, { // #20 src: "println(3 /* argh ) */)", tok: `"println" "(3 /* argh ) */)" `, }} |
