Browse Source

move main into cmd/gython folder

master
Brett Langdon 10 years ago
parent
commit
34d675c30d
2 changed files with 54 additions and 0 deletions
  1. +0
    -0
      cmd/gython/gython.go
  2. +54
    -0
      cmd/gython/main.go

main.go → cmd/gython/gython.go View File


+ 54
- 0
cmd/gython/main.go View File

@ -0,0 +1,54 @@
package main
import (
"fmt"
"os"
"github.com/brettlangdon/gython/ast"
"github.com/brettlangdon/gython/compiler"
"github.com/brettlangdon/gython/grammar"
"github.com/brettlangdon/gython/scanner"
"github.com/brettlangdon/gython/token"
)
func tokenize() {
tokenizer := scanner.NewScanner(os.Stdin)
for {
tok := tokenizer.NextToken()
tokenRange := fmt.Sprintf("%d,%d-%d,%d:", tok.LineStart, tok.ColumnStart, tok.LineEnd, tok.ColumnEnd)
literalRep := fmt.Sprintf("%#v", tok.Literal)
fmt.Printf("%-20s%-15s%-15s\n", tokenRange, tok.String(), literalRep)
if tok.ID == token.ENDMARKER || tok.ID == token.ERRORTOKEN {
break
}
}
}
func parseGrammar() *grammar.FileInput {
tokenizer := scanner.NewScanner(os.Stdin)
gp := grammar.NewGrammarParser(tokenizer)
return gp.Parse()
}
func parseAST() ast.Mod {
start := parseGrammar()
mod, err := ast.ASTFromGrammar(start)
if err != nil {
panic(err)
}
return mod
}
func compile() {
root := parseAST()
codeobject := compiler.CompileAST(root)
fmt.Println(codeobject)
}
func main() {
// start := parseGrammar()
// fmt.Println(start.Repr())
// root := parseAST()
// fmt.Println(root)
compile()
}

Loading…
Cancel
Save