mirror of
https://github.com/robertkrimen/otto
synced 2025-09-28 18:45:22 +08:00
Fix not skipping /* & // after encountering them
This commit is contained in:
parent
d291bdadca
commit
cd4f36ce98
5
Makefile
5
Makefile
|
@ -13,7 +13,6 @@ TEST := -v .
|
||||||
TEST := -v --run Synopsis
|
TEST := -v --run Synopsis
|
||||||
TEST := -v --run _eval
|
TEST := -v --run _eval
|
||||||
TEST := -v --run Broken
|
TEST := -v --run Broken
|
||||||
TEST := -v --run ParseSuccess
|
|
||||||
TEST := -v --run OttoError
|
TEST := -v --run OttoError
|
||||||
TEST := -v --run API
|
TEST := -v --run API
|
||||||
TEST := -v --run IsValidRegExp
|
TEST := -v --run IsValidRegExp
|
||||||
|
@ -21,11 +20,13 @@ TEST := -v --run SwitchBreak
|
||||||
TEST := -v --run Unicode
|
TEST := -v --run Unicode
|
||||||
TEST := -v --run _issue
|
TEST := -v --run _issue
|
||||||
TEST := -v --run String_fromCharCode
|
TEST := -v --run String_fromCharCode
|
||||||
TEST := -v --run ParseFailure
|
|
||||||
TEST := -v --run Lexer\|Parse
|
TEST := -v --run Lexer\|Parse
|
||||||
TEST := -v --run Lexer
|
TEST := -v --run Lexer
|
||||||
TEST := -v --run String_
|
TEST := -v --run String_
|
||||||
TEST := -v --run RegExp
|
TEST := -v --run RegExp
|
||||||
|
TEST := -v --run ParseSuccess
|
||||||
|
TEST := -v --run Parse
|
||||||
|
TEST := -v --run ParseFailure
|
||||||
TEST := .
|
TEST := .
|
||||||
|
|
||||||
test: test-i
|
test: test-i
|
||||||
|
|
6
lexer.go
6
lexer.go
|
@ -159,12 +159,16 @@ func (self *_lexer) ScanSkip() int {
|
||||||
chr := self.peek()
|
chr := self.peek()
|
||||||
switch {
|
switch {
|
||||||
case chr == '/':
|
case chr == '/':
|
||||||
read, _, _, _ := self.read(3)
|
read, _, found, width := self.read(2)
|
||||||
switch read[1] {
|
switch read[1] {
|
||||||
case '/':
|
case '/':
|
||||||
|
self.tail += found
|
||||||
|
self.tailOffset += width
|
||||||
self.ScanLineComment()
|
self.ScanLineComment()
|
||||||
lineCount += 1
|
lineCount += 1
|
||||||
case '*':
|
case '*':
|
||||||
|
self.tail += found
|
||||||
|
self.tailOffset += width
|
||||||
lineCount += self.ScanBlockComment()
|
lineCount += self.ScanBlockComment()
|
||||||
default:
|
default:
|
||||||
goto RETURN
|
goto RETURN
|
||||||
|
|
|
@ -653,6 +653,12 @@ func TestParseSuccess(t *testing.T) {
|
||||||
---
|
---
|
||||||
{ @ xyzzy { <throw> { <new> TypeError "Nothing happens." } } }
|
{ @ xyzzy { <throw> { <new> TypeError "Nothing happens." } } }
|
||||||
`)
|
`)
|
||||||
|
|
||||||
|
test(`
|
||||||
|
/abc/.source
|
||||||
|
---
|
||||||
|
{ @ { . { /abc/ } source } }
|
||||||
|
`)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestParseFailure(t *testing.T) {
|
func TestParseFailure(t *testing.T) {
|
||||||
|
@ -1393,6 +1399,20 @@ Label '_' has already been declared
|
||||||
---
|
---
|
||||||
Unexpected token ( 2:-:-
|
Unexpected token ( 2:-:-
|
||||||
`)
|
`)
|
||||||
|
|
||||||
|
test(`
|
||||||
|
/*/
|
||||||
|
---
|
||||||
|
Unexpected token ILLEGAL
|
||||||
|
0:0:0
|
||||||
|
`)
|
||||||
|
|
||||||
|
test(`
|
||||||
|
/*/.source
|
||||||
|
---
|
||||||
|
Unexpected token ILLEGAL
|
||||||
|
0:0:0
|
||||||
|
`)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestParseComment(t *testing.T) {
|
func TestParseComment(t *testing.T) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user