diff options
Diffstat (limited to 'pkg/lang/scanner/scanner_test.go')
| -rw-r--r-- | pkg/lang/scanner/scanner_test.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/pkg/lang/scanner/scanner_test.go b/pkg/lang/scanner/scanner_test.go new file mode 100644 index 0000000..2948a58 --- /dev/null +++ b/pkg/lang/scanner/scanner_test.go @@ -0,0 +1,29 @@ +package scanner_test + +import ( + "jinx/pkg/lang/scanner" + "jinx/pkg/lang/scanner/token" + "strings" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestBasic(t *testing.T) { + source := "var x = 1" + + s := scanner.New(strings.NewReader(source)) + + tokens, err := s.Scan() + require.NoError(t, err) + + expected := []token.Token{ + token.Simple(token.KwVar, token.Loc{Row: 0, Col: 0}), + token.New(token.Ident, token.Loc{Row: 0, Col: 4}, "x"), + token.Simple(token.Assign, token.Loc{Row: 0, Col: 6}), + token.New(token.Int, token.Loc{Row: 0, Col: 8}, uint64(1)), + token.Simple(token.EOF, token.Loc{Row: 0, Col: 9}), + } + + require.Equal(t, expected, tokens) +} |
