save comment position

This commit is contained in:
z7zmey 2018-04-15 21:39:26 +03:00
parent c2f938e55c
commit 781a55659b
10 changed files with 114 additions and 61 deletions

View File

@ -1,17 +1,28 @@
package comment package comment
import (
"github.com/z7zmey/php-parser/position"
)
// Comment aggrigates information about comment /** // Comment aggrigates information about comment /**
type Comment struct { type Comment struct {
value string value string
position *position.Position
} }
// NewComment - Comment constructor // NewComment - Comment constructor
func NewComment(value string) *Comment { func NewComment(value string, pos *position.Position) *Comment {
return &Comment{ return &Comment{
value, value,
pos,
} }
} }
func (c *Comment) String() string { func (c *Comment) String() string {
return c.value return c.value
} }
// Position returns comment position
func (c *Comment) Position() *position.Position {
return c.position
}

View File

@ -3,6 +3,8 @@ package comment_test
import ( import (
"testing" "testing"
"github.com/z7zmey/php-parser/position"
"github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/comment"
"github.com/z7zmey/php-parser/node" "github.com/z7zmey/php-parser/node"
) )
@ -11,8 +13,8 @@ func TestComments(t *testing.T) {
n := node.NewIdentifier("test") n := node.NewIdentifier("test")
commentGroup := []*comment.Comment{ commentGroup := []*comment.Comment{
comment.NewComment("/** hello world */"), comment.NewComment("/** hello world */", nil),
comment.NewComment("// hello world"), comment.NewComment("// hello world", nil),
} }
comments := comment.Comments{} comments := comment.Comments{}
@ -25,3 +27,15 @@ func TestComments(t *testing.T) {
t.Errorf("expected and actual are not equal\n") t.Errorf("expected and actual are not equal\n")
} }
} }
func TestCommentPos(t *testing.T) {
expected := position.NewPosition(0, 0, 0, 0)
comment := comment.NewComment("/** hello world */", expected)
actual := comment.Position()
if expected != actual {
t.Errorf("expected and actual are not equal\n")
}
}

View File

@ -1,13 +1,14 @@
package position package parser
import ( import (
"github.com/z7zmey/php-parser/node" "github.com/z7zmey/php-parser/node"
"github.com/z7zmey/php-parser/position"
"github.com/z7zmey/php-parser/scanner" "github.com/z7zmey/php-parser/scanner"
) )
// Builder provide functions to constuct positions // Builder provide functions to constuct positions
type Builder struct { type Builder struct {
Positions *Positions Positions *position.Positions
} }
type startPos struct { type startPos struct {
@ -79,8 +80,8 @@ func (b *Builder) getNodeEndPos(n node.Node) endPos {
} }
// NewNodeListPosition returns new Position // NewNodeListPosition returns new Position
func (b *Builder) NewNodeListPosition(list []node.Node) *Position { func (b *Builder) NewNodeListPosition(list []node.Node) *position.Position {
return &Position{ return &position.Position{
b.getListStartPos(list).startLine, b.getListStartPos(list).startLine,
b.getListEndPos(list).endLine, b.getListEndPos(list).endLine,
b.getListStartPos(list).startPos, b.getListStartPos(list).startPos,
@ -89,8 +90,8 @@ func (b *Builder) NewNodeListPosition(list []node.Node) *Position {
} }
// NewNodePosition returns new Position // NewNodePosition returns new Position
func (b *Builder) NewNodePosition(n node.Node) *Position { func (b *Builder) NewNodePosition(n node.Node) *position.Position {
return &Position{ return &position.Position{
b.getNodeStartPos(n).startLine, b.getNodeStartPos(n).startLine,
b.getNodeEndPos(n).endLine, b.getNodeEndPos(n).endLine,
b.getNodeStartPos(n).startPos, b.getNodeStartPos(n).startPos,
@ -99,8 +100,8 @@ func (b *Builder) NewNodePosition(n node.Node) *Position {
} }
// NewTokenPosition returns new Position // NewTokenPosition returns new Position
func (b *Builder) NewTokenPosition(t scanner.Token) *Position { func (b *Builder) NewTokenPosition(t scanner.Token) *position.Position {
return &Position{ return &position.Position{
t.StartLine, t.StartLine,
t.EndLine, t.EndLine,
t.StartPos, t.StartPos,
@ -109,8 +110,8 @@ func (b *Builder) NewTokenPosition(t scanner.Token) *Position {
} }
// NewTokensPosition returns new Position // NewTokensPosition returns new Position
func (b *Builder) NewTokensPosition(startToken scanner.Token, endToken scanner.Token) *Position { func (b *Builder) NewTokensPosition(startToken scanner.Token, endToken scanner.Token) *position.Position {
return &Position{ return &position.Position{
startToken.StartLine, startToken.StartLine,
endToken.EndLine, endToken.EndLine,
startToken.StartPos, startToken.StartPos,
@ -119,8 +120,8 @@ func (b *Builder) NewTokensPosition(startToken scanner.Token, endToken scanner.T
} }
// NewTokenNodePosition returns new Position // NewTokenNodePosition returns new Position
func (b *Builder) NewTokenNodePosition(t scanner.Token, n node.Node) *Position { func (b *Builder) NewTokenNodePosition(t scanner.Token, n node.Node) *position.Position {
return &Position{ return &position.Position{
t.StartLine, t.StartLine,
b.getNodeEndPos(n).endLine, b.getNodeEndPos(n).endLine,
t.StartPos, t.StartPos,
@ -129,8 +130,8 @@ func (b *Builder) NewTokenNodePosition(t scanner.Token, n node.Node) *Position {
} }
// NewNodeTokenPosition returns new Position // NewNodeTokenPosition returns new Position
func (b *Builder) NewNodeTokenPosition(n node.Node, t scanner.Token) *Position { func (b *Builder) NewNodeTokenPosition(n node.Node, t scanner.Token) *position.Position {
return &Position{ return &position.Position{
b.getNodeStartPos(n).startLine, b.getNodeStartPos(n).startLine,
t.EndLine, t.EndLine,
b.getNodeStartPos(n).startPos, b.getNodeStartPos(n).startPos,
@ -139,8 +140,8 @@ func (b *Builder) NewNodeTokenPosition(n node.Node, t scanner.Token) *Position {
} }
// NewNodesPosition returns new Position // NewNodesPosition returns new Position
func (b *Builder) NewNodesPosition(startNode node.Node, endNode node.Node) *Position { func (b *Builder) NewNodesPosition(startNode node.Node, endNode node.Node) *position.Position {
return &Position{ return &position.Position{
b.getNodeStartPos(startNode).startLine, b.getNodeStartPos(startNode).startLine,
b.getNodeEndPos(endNode).endLine, b.getNodeEndPos(endNode).endLine,
b.getNodeStartPos(startNode).startPos, b.getNodeStartPos(startNode).startPos,
@ -149,8 +150,8 @@ func (b *Builder) NewNodesPosition(startNode node.Node, endNode node.Node) *Posi
} }
// NewNodeListTokenPosition returns new Position // NewNodeListTokenPosition returns new Position
func (b *Builder) NewNodeListTokenPosition(list []node.Node, t scanner.Token) *Position { func (b *Builder) NewNodeListTokenPosition(list []node.Node, t scanner.Token) *position.Position {
return &Position{ return &position.Position{
b.getListStartPos(list).startLine, b.getListStartPos(list).startLine,
t.EndLine, t.EndLine,
b.getListStartPos(list).startPos, b.getListStartPos(list).startPos,
@ -159,8 +160,8 @@ func (b *Builder) NewNodeListTokenPosition(list []node.Node, t scanner.Token) *P
} }
// NewTokenNodeListPosition returns new Position // NewTokenNodeListPosition returns new Position
func (b *Builder) NewTokenNodeListPosition(t scanner.Token, list []node.Node) *Position { func (b *Builder) NewTokenNodeListPosition(t scanner.Token, list []node.Node) *position.Position {
return &Position{ return &position.Position{
t.StartLine, t.StartLine,
b.getListEndPos(list).endLine, b.getListEndPos(list).endLine,
t.StartPos, t.StartPos,
@ -169,8 +170,8 @@ func (b *Builder) NewTokenNodeListPosition(t scanner.Token, list []node.Node) *P
} }
// NewNodeNodeListPosition returns new Position // NewNodeNodeListPosition returns new Position
func (b *Builder) NewNodeNodeListPosition(n node.Node, list []node.Node) *Position { func (b *Builder) NewNodeNodeListPosition(n node.Node, list []node.Node) *position.Position {
return &Position{ return &position.Position{
b.getNodeStartPos(n).startLine, b.getNodeStartPos(n).startLine,
b.getListEndPos(list).endLine, b.getListEndPos(list).endLine,
b.getNodeStartPos(n).startPos, b.getNodeStartPos(n).startPos,
@ -179,9 +180,9 @@ func (b *Builder) NewNodeNodeListPosition(n node.Node, list []node.Node) *Positi
} }
// NewOptionalListTokensPosition returns new Position // NewOptionalListTokensPosition returns new Position
func (b *Builder) NewOptionalListTokensPosition(list []node.Node, t scanner.Token, endToken scanner.Token) *Position { func (b *Builder) NewOptionalListTokensPosition(list []node.Node, t scanner.Token, endToken scanner.Token) *position.Position {
if list == nil { if list == nil {
return &Position{ return &position.Position{
t.StartLine, t.StartLine,
endToken.EndLine, endToken.EndLine,
t.StartPos, t.StartPos,
@ -189,7 +190,7 @@ func (b *Builder) NewOptionalListTokensPosition(list []node.Node, t scanner.Toke
} }
} }
return &Position{ return &position.Position{
b.getListStartPos(list).startLine, b.getListStartPos(list).startLine,
endToken.EndLine, endToken.EndLine,
b.getListStartPos(list).startPos, b.getListStartPos(list).startPos,

View File

@ -1,16 +1,17 @@
package position_test package parser_test
import ( import (
"testing" "testing"
"github.com/z7zmey/php-parser/node" "github.com/z7zmey/php-parser/node"
"github.com/z7zmey/php-parser/parser"
"github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/position"
"github.com/z7zmey/php-parser/scanner" "github.com/z7zmey/php-parser/scanner"
) )
func TestNewTokenPosition(t *testing.T) { func TestNewTokenPosition(t *testing.T) {
builder := position.Builder{} builder := parser.Builder{}
tkn := scanner.NewToken([]byte(`foo`), 1, 1, 0, 3) tkn := scanner.NewToken([]byte(`foo`), 1, 1, 0, 3)
@ -22,7 +23,7 @@ func TestNewTokenPosition(t *testing.T) {
} }
func TestNewTokensPosition(t *testing.T) { func TestNewTokensPosition(t *testing.T) {
builder := position.Builder{} builder := parser.Builder{}
token1 := scanner.NewToken([]byte(`foo`), 1, 1, 0, 3) token1 := scanner.NewToken([]byte(`foo`), 1, 1, 0, 3)
token2 := scanner.NewToken([]byte(`foo`), 2, 2, 4, 6) token2 := scanner.NewToken([]byte(`foo`), 2, 2, 4, 6)
@ -45,7 +46,7 @@ func TestNewNodePosition(t *testing.T) {
EndPos: 3, EndPos: 3,
}) })
builder := position.Builder{ builder := parser.Builder{
Positions: p, Positions: p,
} }
@ -68,7 +69,7 @@ func TestNewTokenNodePosition(t *testing.T) {
EndPos: 12, EndPos: 12,
}) })
builder := position.Builder{ builder := parser.Builder{
Positions: p, Positions: p,
} }
@ -91,7 +92,7 @@ func TestNewNodeTokenPosition(t *testing.T) {
EndPos: 9, EndPos: 9,
}) })
builder := position.Builder{ builder := parser.Builder{
Positions: p, Positions: p,
} }
@ -106,7 +107,7 @@ func TestNewNodeListPosition(t *testing.T) {
n1 := node.NewIdentifier("test node") n1 := node.NewIdentifier("test node")
n2 := node.NewIdentifier("test node") n2 := node.NewIdentifier("test node")
builder := position.Builder{ builder := parser.Builder{
Positions: &position.Positions{ Positions: &position.Positions{
n1: &position.Position{ n1: &position.Position{
StartLine: 1, StartLine: 1,
@ -134,7 +135,7 @@ func TestNewNodesPosition(t *testing.T) {
n1 := node.NewIdentifier("test node") n1 := node.NewIdentifier("test node")
n2 := node.NewIdentifier("test node") n2 := node.NewIdentifier("test node")
builder := position.Builder{ builder := parser.Builder{
Positions: &position.Positions{ Positions: &position.Positions{
n1: &position.Position{ n1: &position.Position{
StartLine: 1, StartLine: 1,
@ -163,7 +164,7 @@ func TestNewNodeListTokenPosition(t *testing.T) {
n2 := node.NewIdentifier("test node") n2 := node.NewIdentifier("test node")
tkn := scanner.NewToken([]byte(`foo`), 3, 3, 20, 22) tkn := scanner.NewToken([]byte(`foo`), 3, 3, 20, 22)
builder := position.Builder{ builder := parser.Builder{
Positions: &position.Positions{ Positions: &position.Positions{
n1: &position.Position{ n1: &position.Position{
StartLine: 1, StartLine: 1,
@ -192,7 +193,7 @@ func TestNewTokenNodeListPosition(t *testing.T) {
n1 := node.NewIdentifier("test node") n1 := node.NewIdentifier("test node")
n2 := node.NewIdentifier("test node") n2 := node.NewIdentifier("test node")
builder := position.Builder{ builder := parser.Builder{
Positions: &position.Positions{ Positions: &position.Positions{
n1: &position.Position{ n1: &position.Position{
StartLine: 2, StartLine: 2,
@ -221,7 +222,7 @@ func TestNewNodeNodeListPosition(t *testing.T) {
n2 := node.NewIdentifier("test node") n2 := node.NewIdentifier("test node")
n3 := node.NewIdentifier("test node") n3 := node.NewIdentifier("test node")
builder := position.Builder{ builder := parser.Builder{
Positions: &position.Positions{ Positions: &position.Positions{
n1: &position.Position{ n1: &position.Position{
StartLine: 1, StartLine: 1,
@ -252,7 +253,7 @@ func TestNewNodeNodeListPosition(t *testing.T) {
} }
func TestNewOptionalListTokensPosition(t *testing.T) { func TestNewOptionalListTokensPosition(t *testing.T) {
builder := position.Builder{} builder := parser.Builder{}
token1 := scanner.NewToken([]byte(`foo`), 1, 1, 0, 3) token1 := scanner.NewToken([]byte(`foo`), 1, 1, 0, 3)
token2 := scanner.NewToken([]byte(`foo`), 2, 2, 4, 6) token2 := scanner.NewToken([]byte(`foo`), 2, 2, 4, 6)
@ -269,7 +270,7 @@ func TestNewOptionalListTokensPosition2(t *testing.T) {
n2 := node.NewIdentifier("test node") n2 := node.NewIdentifier("test node")
n3 := node.NewIdentifier("test node") n3 := node.NewIdentifier("test node")
builder := position.Builder{ builder := parser.Builder{
Positions: &position.Positions{ Positions: &position.Positions{
n1: &position.Position{ n1: &position.Position{
StartLine: 1, StartLine: 1,
@ -303,7 +304,7 @@ func TestNewOptionalListTokensPosition2(t *testing.T) {
} }
func TestNilNodePos(t *testing.T) { func TestNilNodePos(t *testing.T) {
builder := position.Builder{} builder := parser.Builder{}
pos := builder.NewNodesPosition(nil, nil) pos := builder.NewNodesPosition(nil, nil)
@ -315,7 +316,7 @@ func TestNilNodePos(t *testing.T) {
func TestNilNodeListPos(t *testing.T) { func TestNilNodeListPos(t *testing.T) {
n1 := node.NewIdentifier("test node") n1 := node.NewIdentifier("test node")
builder := position.Builder{ builder := parser.Builder{
Positions: &position.Positions{ Positions: &position.Positions{
n1: &position.Position{ n1: &position.Position{
StartLine: 1, StartLine: 1,
@ -336,7 +337,7 @@ func TestNilNodeListPos(t *testing.T) {
func TestNilNodeListTokenPos(t *testing.T) { func TestNilNodeListTokenPos(t *testing.T) {
token1 := scanner.NewToken([]byte(`foo`), 1, 1, 0, 3) token1 := scanner.NewToken([]byte(`foo`), 1, 1, 0, 3)
builder := position.Builder{} builder := parser.Builder{}
pos := builder.NewNodeListTokenPosition(nil, token1) pos := builder.NewNodeListTokenPosition(nil, token1)
@ -348,7 +349,7 @@ func TestNilNodeListTokenPos(t *testing.T) {
func TestEmptyNodeListPos(t *testing.T) { func TestEmptyNodeListPos(t *testing.T) {
n1 := node.NewIdentifier("test node") n1 := node.NewIdentifier("test node")
builder := position.Builder{ builder := parser.Builder{
Positions: &position.Positions{ Positions: &position.Positions{
n1: &position.Position{ n1: &position.Position{
StartLine: 1, StartLine: 1,
@ -369,7 +370,7 @@ func TestEmptyNodeListPos(t *testing.T) {
func TestEmptyNodeListTokenPos(t *testing.T) { func TestEmptyNodeListTokenPos(t *testing.T) {
token1 := scanner.NewToken([]byte(`foo`), 1, 1, 0, 3) token1 := scanner.NewToken([]byte(`foo`), 1, 1, 0, 3)
builder := position.Builder{} builder := parser.Builder{}
pos := builder.NewNodeListTokenPosition([]node.Node{}, token1) pos := builder.NewNodeListTokenPosition([]node.Node{}, token1)

View File

@ -6,6 +6,7 @@ import (
"github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/comment"
"github.com/z7zmey/php-parser/errors" "github.com/z7zmey/php-parser/errors"
"github.com/z7zmey/php-parser/node" "github.com/z7zmey/php-parser/node"
"github.com/z7zmey/php-parser/parser"
"github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/position"
"github.com/z7zmey/php-parser/scanner" "github.com/z7zmey/php-parser/scanner"
) )
@ -19,7 +20,7 @@ type Parser struct {
*scanner.Lexer *scanner.Lexer
path string path string
lastToken *scanner.Token lastToken *scanner.Token
positionBuilder *position.Builder positionBuilder *parser.Builder
errors []*errors.Error errors []*errors.Error
rootNode node.Node rootNode node.Node
comments comment.Comments comments comment.Comments
@ -63,7 +64,7 @@ func (l *Parser) Parse() int {
l.rootNode = nil l.rootNode = nil
l.comments = comment.Comments{} l.comments = comment.Comments{}
l.positions = position.Positions{} l.positions = position.Positions{}
l.positionBuilder = &position.Builder{ l.positionBuilder = &parser.Builder{
Positions: &l.positions, Positions: &l.positions,
} }

View File

@ -6,6 +6,7 @@ import (
"github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/comment"
"github.com/z7zmey/php-parser/errors" "github.com/z7zmey/php-parser/errors"
"github.com/z7zmey/php-parser/node" "github.com/z7zmey/php-parser/node"
"github.com/z7zmey/php-parser/parser"
"github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/position"
"github.com/z7zmey/php-parser/scanner" "github.com/z7zmey/php-parser/scanner"
) )
@ -19,7 +20,7 @@ type Parser struct {
*scanner.Lexer *scanner.Lexer
path string path string
lastToken *scanner.Token lastToken *scanner.Token
positionBuilder *position.Builder positionBuilder *parser.Builder
errors []*errors.Error errors []*errors.Error
rootNode node.Node rootNode node.Node
comments comment.Comments comments comment.Comments
@ -63,7 +64,7 @@ func (l *Parser) Parse() int {
l.rootNode = nil l.rootNode = nil
l.comments = comment.Comments{} l.comments = comment.Comments{}
l.positions = position.Positions{} l.positions = position.Positions{}
l.positionBuilder = &position.Builder{ l.positionBuilder = &parser.Builder{
Positions: &l.positions, Positions: &l.positions,
} }

View File

@ -14,6 +14,16 @@ type Position struct {
EndPos int EndPos int
} }
// NewPosition Position constructor
func NewPosition(StartLine int, EndLine int, StartPos int, EndPos int) *Position {
return &Position{
StartLine: StartLine,
EndLine: EndLine,
StartPos: StartPos,
EndPos: EndPos,
}
}
func (p Position) String() string { func (p Position) String() string {
return fmt.Sprintf("Pos{Line: %d-%d Pos: %d-%d}", p.StartLine, p.EndLine, p.StartPos, p.EndPos) return fmt.Sprintf("Pos{Line: %d-%d Pos: %d-%d}", p.StartLine, p.EndLine, p.StartPos, p.EndPos)
} }

View File

@ -8,6 +8,8 @@ import (
"io" "io"
"unicode" "unicode"
"github.com/z7zmey/php-parser/position"
"github.com/cznic/golex/lex" "github.com/cznic/golex/lex"
"github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/comment"
) )
@ -521,7 +523,17 @@ func (l *Lexer) newToken(chars []lex.Char) Token {
} }
func (l *Lexer) addComment(chars []lex.Char) { func (l *Lexer) addComment(chars []lex.Char) {
c := comment.NewComment(string(l.charsToBytes(chars))) firstChar := chars[0]
lastChar := chars[len(chars)-1]
pos := position.NewPosition(
l.File.Line(firstChar.Pos()),
l.File.Line(lastChar.Pos()),
int(firstChar.Pos()),
int(lastChar.Pos()),
)
c := comment.NewComment(string(l.charsToBytes(chars)), pos)
l.Comments = append(l.Comments, c) l.Comments = append(l.Comments, c)
} }

View File

@ -5,6 +5,8 @@ import (
"reflect" "reflect"
"testing" "testing"
"github.com/z7zmey/php-parser/position"
"github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/comment"
"github.com/z7zmey/php-parser/scanner" "github.com/z7zmey/php-parser/scanner"
@ -873,7 +875,7 @@ func TestCommentEnd(t *testing.T) {
src := `<?php //test` src := `<?php //test`
expected := []*comment.Comment{ expected := []*comment.Comment{
comment.NewComment("//test"), comment.NewComment("//test", position.NewPosition(1, 1, 7, 12)),
} }
lexer := scanner.NewLexer(bytes.NewBufferString(src), "test.php") lexer := scanner.NewLexer(bytes.NewBufferString(src), "test.php")
@ -890,7 +892,7 @@ func TestCommentNewLine(t *testing.T) {
src := "<?php //test\n$a" src := "<?php //test\n$a"
expected := []*comment.Comment{ expected := []*comment.Comment{
comment.NewComment("//test\n"), comment.NewComment("//test\n", position.NewPosition(1, 1, 7, 13)),
} }
lexer := scanner.NewLexer(bytes.NewBufferString(src), "test.php") lexer := scanner.NewLexer(bytes.NewBufferString(src), "test.php")
@ -907,7 +909,7 @@ func TestCommentNewLine1(t *testing.T) {
src := "<?php //test\r$a" src := "<?php //test\r$a"
expected := []*comment.Comment{ expected := []*comment.Comment{
comment.NewComment("//test\r"), comment.NewComment("//test\r", position.NewPosition(1, 1, 7, 13)),
} }
lexer := scanner.NewLexer(bytes.NewBufferString(src), "test.php") lexer := scanner.NewLexer(bytes.NewBufferString(src), "test.php")
@ -924,7 +926,7 @@ func TestCommentNewLine2(t *testing.T) {
src := "<?php #test\r\n$a" src := "<?php #test\r\n$a"
expected := []*comment.Comment{ expected := []*comment.Comment{
comment.NewComment("#test\r\n"), comment.NewComment("#test\r\n", position.NewPosition(1, 1, 7, 13)),
} }
lexer := scanner.NewLexer(bytes.NewBufferString(src), "test.php") lexer := scanner.NewLexer(bytes.NewBufferString(src), "test.php")
@ -942,7 +944,7 @@ func TestCommentWithPhpEndTag(t *testing.T) {
//test?> test` //test?> test`
expected := []*comment.Comment{ expected := []*comment.Comment{
comment.NewComment("//test"), comment.NewComment("//test", position.NewPosition(2, 2, 8, 13)),
} }
lexer := scanner.NewLexer(bytes.NewBufferString(src), "test.php") lexer := scanner.NewLexer(bytes.NewBufferString(src), "test.php")
@ -960,7 +962,7 @@ func TestInlineComment(t *testing.T) {
/*test*/` /*test*/`
expected := []*comment.Comment{ expected := []*comment.Comment{
comment.NewComment("/*test*/"), comment.NewComment("/*test*/", position.NewPosition(2, 2, 8, 15)),
} }
lexer := scanner.NewLexer(bytes.NewBufferString(src), "test.php") lexer := scanner.NewLexer(bytes.NewBufferString(src), "test.php")
@ -978,7 +980,7 @@ func TestEmptyInlineComment(t *testing.T) {
/**/` /**/`
expected := []*comment.Comment{ expected := []*comment.Comment{
comment.NewComment("/**/"), comment.NewComment("/**/", position.NewPosition(2, 2, 8, 11)),
} }
lexer := scanner.NewLexer(bytes.NewBufferString(src), "test.php") lexer := scanner.NewLexer(bytes.NewBufferString(src), "test.php")
@ -996,7 +998,7 @@ func TestEmptyInlineComment2(t *testing.T) {
/***/` /***/`
expected := []*comment.Comment{ expected := []*comment.Comment{
comment.NewComment("/***/"), comment.NewComment("/***/", position.NewPosition(2, 2, 8, 12)),
} }
lexer := scanner.NewLexer(bytes.NewBufferString(src), "test.php") lexer := scanner.NewLexer(bytes.NewBufferString(src), "test.php")

View File

@ -13,7 +13,7 @@ func TestToken(t *testing.T) {
tkn := scanner.NewToken([]byte(`foo`), 1, 1, 0, 3) tkn := scanner.NewToken([]byte(`foo`), 1, 1, 0, 3)
c := []*comment.Comment{ c := []*comment.Comment{
comment.NewComment("test comment"), comment.NewComment("test comment", nil),
} }
tkn.SetComments(c) tkn.SetComments(c)