diff options
| author | Mel <einebeere@gmail.com> | 2022-04-16 22:05:25 +0200 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2022-04-16 22:05:25 +0200 |
| commit | bbb2962bd4bac0ce1271ec7d7cb65d038ead8ed2 (patch) | |
| tree | 01cc597df41e9ed9b246f9d537783f68e126caab /pkg/lang/scanner/scanner_test.go | |
| parent | 6163d259ed52991e2f95632b5a0516607aa56a5f (diff) | |
| download | jinx-bbb2962bd4bac0ce1271ec7d7cb65d038ead8ed2.tar.zst jinx-bbb2962bd4bac0ce1271ec7d7cb65d038ead8ed2.zip | |
Basic scanner for lang
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) +} |
