z_mirror/luapls

git clone https://git.raiguard.me/z_mirror/luapls

Caleb HeuerSimplify lexer.Run010381d

main
609 B39 linesraw
1package repl
2
3import (
4	"encoding/json"
5	"fmt"
6
7	"github.com/raiguard/luapls/lua/lexer"
8	"github.com/raiguard/luapls/lua/parser"
9
10	"github.com/chzyer/readline"
11)
12
13func Run() {
14	rl, err := readline.New("(luapls) ")
15	if err != nil {
16		panic(err)
17	}
18	defer rl.Close()
19
20	for {
21		line, err := rl.Readline()
22		if err != nil {
23			break
24		}
25
26		fmt.Println("TOKENS:")
27		tokens, _ := lexer.Run(line)
28		for _, tok := range tokens {
29			fmt.Println(tok.String())
30		}
31
32		fmt.Println("AST:")
33
34		p := parser.New(line)
35		file := p.ParseFile()
36		bytes, _ := json.MarshalIndent(file, "", "  ")
37		fmt.Println(string(bytes))
38	}
39}