-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.go
More file actions
32 lines (27 loc) · 890 Bytes
/
Copy pathmain.go
File metadata and controls
32 lines (27 loc) · 890 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package main
import (
"fmt"
"ion-go/Interpreter"
"ion-go/JSON"
"ion-go/Lexer"
"ion-go/Parser"
"ion-go/TypeChecker"
)
func main() {
// tokenStream := Lexer.GenerateTokenStream("./factorial.ion")
// tokenStream := Lexer.GenerateTokenStream("./fib.ion")
// tokenStream := Lexer.GenerateTokenStream("./array.ion")
// tokenStream := Lexer.GenerateTokenStream("./fractal.ion")
// tokenStream := Lexer.GenerateTokenStream("./test.ion")
tokenStream := Lexer.GenerateTokenStream("./struct.ion")
for i := 0; i < len(tokenStream); i++ {
token := tokenStream[i]
tokenType, tokenValue := token.Kind, token.Lexeme
fmt.Print("Type: ", tokenType, "(", tokenValue, ") | Line:", token.Line, "\n")
}
program := Parser.ParseProgram(tokenStream)
//fmt.Printf("%+v\n", program)
TypeChecker.TypeCheckProgram(program)
JSON.PrettyPrint(program)
Interpreter.InterpretProgram(program)
}