summaryrefslogtreecommitdiff
path: root/scanner
diff options
context:
space:
mode:
authorMarc Vertes <mvertes@free.fr>2023-09-01 11:42:55 +0200
committerMarc Vertes <mvertes@free.fr>2023-09-01 11:42:55 +0200
commit459eca16816023fb0afdd6e0948e5406d84e5bc5 (patch)
treeb752b860d92af8421614d2d147ea953e85a25871 /scanner
parent851c793da43be9e4d3319afe440d603c85834045 (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.go8
-rw-r--r--scanner/scan_test.go3
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 ) */)" `,
}}