Move lexer back into main package with updated go.mod
This commit is contained in:
		
							parent
							
								
									6ac4a512c2
								
							
						
					
					
						commit
						222f32ef46
					
				
					 7 changed files with 51 additions and 45 deletions
				
			
		|  | @ -1,15 +1,13 @@ | ||||||
| // Code generated by tools/gen-ast.go DO NOT EDIT. | // Code generated by tools/gen-ast.go DO NOT EDIT. | ||||||
| package main | package main | ||||||
| 
 | 
 | ||||||
| import "git.bonsai.cool/kayprish/pj1/pj1-go/lexer" |  | ||||||
| 
 |  | ||||||
| type Expr interface { | type Expr interface { | ||||||
| 	isExpr() | 	isExpr() | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type Binary struct { | type Binary struct { | ||||||
| 	left Expr | 	left Expr | ||||||
| 	operator lexer.Token | 	operator Token | ||||||
| 	right Expr | 	right Expr | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -28,7 +26,7 @@ type Literal struct { | ||||||
| func (x Literal) isExpr() {} | func (x Literal) isExpr() {} | ||||||
| 
 | 
 | ||||||
| type Unary struct { | type Unary struct { | ||||||
| 	operator lexer.Token | 	operator Token | ||||||
| 	right Expr | 	right Expr | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -14,10 +14,11 @@ import ( | ||||||
| 	"unicode/utf8" | 	"unicode/utf8" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| var modulePath string |  | ||||||
| 
 |  | ||||||
| // returns a string which contains the current module path, keep in mind this | // returns a string which contains the current module path, keep in mind this | ||||||
| // program is meant to be run in the root of the module using go generate | // program is meant to be run in the root of the module using go generate | ||||||
|  | // | ||||||
|  | // This function is no longer useful because the lexer package has been | ||||||
|  | // deleted, however, it may become useful again soon | ||||||
| func getModulePath() string { | func getModulePath() string { | ||||||
| 	goModFile, err := os.Open("./go.mod") | 	goModFile, err := os.Open("./go.mod") | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  | @ -44,13 +45,12 @@ func main() { | ||||||
| 		os.Exit(64) | 		os.Exit(64) | ||||||
| 	} | 	} | ||||||
| 	outputDir := os.Args[1] | 	outputDir := os.Args[1] | ||||||
| 	modulePath = getModulePath() |  | ||||||
| 	defineAst(outputDir, "Expr", | 	defineAst(outputDir, "Expr", | ||||||
| 		[]string{"Binary : left Expr, operator lexer.Token, right Expr", | 		[]string{"Binary : left Expr, operator Token, right Expr", | ||||||
| 			"Grouping : expression Expr", | 			"Grouping : expression Expr", | ||||||
| 			"Literal : value interface{}", | 			"Literal : value interface{}", | ||||||
| 			// a literal can be any value that can be printed | 			// a literal can be any value that can be printed | ||||||
| 			"Unary : operator lexer.Token, right Expr"}) | 			"Unary : operator Token, right Expr"}) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func lowerFirst(s string) string { | func lowerFirst(s string) string { | ||||||
|  | @ -74,8 +74,6 @@ func defineAst(outputDir string, baseName string, types []string) { | ||||||
| 	fmt.Fprintln(f, "// Code generated by tools/gen-ast.go DO NOT EDIT.") | 	fmt.Fprintln(f, "// Code generated by tools/gen-ast.go DO NOT EDIT.") | ||||||
| 	fmt.Fprintln(f, "package main") | 	fmt.Fprintln(f, "package main") | ||||||
| 	fmt.Fprintln(f) | 	fmt.Fprintln(f) | ||||||
| 	fmt.Fprintln(f, "import \""+modulePath+"/lexer\"") |  | ||||||
| 	fmt.Fprintln(f) |  | ||||||
| 	// Creates a dummy interface just to limit types which can be | 	// Creates a dummy interface just to limit types which can be | ||||||
| 	// considered an "Expr" | 	// considered an "Expr" | ||||||
| 	fmt.Fprintln(f, "type "+baseName+" interface {") | 	fmt.Fprintln(f, "type "+baseName+" interface {") | ||||||
|  |  | ||||||
|  | @ -1,10 +1,13 @@ | ||||||
| module git.bonsai.cool/kayprish/pj1/pj1-go | module git.bonsai.cool/kayprish/pj1/pj1-go | ||||||
| 
 | 
 | ||||||
| go 1.18 | go 1.22.0 | ||||||
| 
 | 
 | ||||||
| require golang.org/x/tools v0.1.13-0.20220917004541-4d18923f060e | toolchain go1.22.2 | ||||||
|  | 
 | ||||||
|  | require golang.org/x/tools v0.29.0 | ||||||
| 
 | 
 | ||||||
| require ( | require ( | ||||||
| 	golang.org/x/mod v0.12.0 // indirect | 	golang.org/x/mod v0.22.0 // indirect | ||||||
| 	golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect | 	golang.org/x/sync v0.10.0 // indirect | ||||||
|  | 	golang.org/x/sys v0.29.0 // indirect | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -1,8 +1,14 @@ | ||||||
| git.bonsai.cool/kayprish/pj1/pj1-go v0.0.0-20240807135935-04e669c15630 h1:SO1oOi4BAVPmoCkBCeZEcNXiCDZJrM49Y5Fhm/bBuBU= |  | ||||||
| git.bonsai.cool/kayprish/pj1/pj1-go v0.0.0-20240807135935-04e669c15630/go.mod h1:f4dHsvhBf6lTSjuA+gqssxFOHdkOjPnS4QeufMWvHOM= |  | ||||||
| golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= | golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= | ||||||
| golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= | golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= | ||||||
|  | golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= | ||||||
|  | golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= | ||||||
|  | golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= | ||||||
|  | golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= | ||||||
| golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s= | golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s= | ||||||
| golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
|  | golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= | ||||||
|  | golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||||
| golang.org/x/tools v0.1.13-0.20220917004541-4d18923f060e h1:K/LreqAwv7hZaSPyj5LvaiQd2wROouJDabf2r+oBqUw= | golang.org/x/tools v0.1.13-0.20220917004541-4d18923f060e h1:K/LreqAwv7hZaSPyj5LvaiQd2wROouJDabf2r+oBqUw= | ||||||
| golang.org/x/tools v0.1.13-0.20220917004541-4d18923f060e/go.mod h1:VsjNM1dMo+Ofkp5d7y7fOdQZD8MTXSQ4w3EPk65AvKU= | golang.org/x/tools v0.1.13-0.20220917004541-4d18923f060e/go.mod h1:VsjNM1dMo+Ofkp5d7y7fOdQZD8MTXSQ4w3EPk65AvKU= | ||||||
|  | golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= | ||||||
|  | golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| package lexer | package main | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
|  | @ -6,7 +6,6 @@ import ( | ||||||
| 	"io/ioutil" | 	"io/ioutil" | ||||||
| 	"os" | 	"os" | ||||||
| 
 | 
 | ||||||
| 	"git.bonsai.cool/kayprish/pj1/pj1-go/lexer" |  | ||||||
| 	"git.bonsai.cool/kayprish/pj1/pj1-go/util" | 	"git.bonsai.cool/kayprish/pj1/pj1-go/util" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | @ -53,9 +52,9 @@ func runPrompt() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func run(source string) { | func run(source string) { | ||||||
| 	l := lexer.NewLexer(source) | 	l := NewLexer(source) | ||||||
| 	l.ScanTokens() | 	l.ScanTokens() | ||||||
| 	var tokens []lexer.Token = l.Tokens | 	var tokens []Token = l.Tokens | ||||||
| 
 | 
 | ||||||
| 	for _, token := range tokens { | 	for _, token := range tokens { | ||||||
| 		fmt.Println(token) | 		fmt.Println(token) | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| // Code generated by "stringer -type=TokenType"; DO NOT EDIT. | // Code generated by "stringer -type=TokenType"; DO NOT EDIT. | ||||||
| 
 | 
 | ||||||
| package lexer | package main | ||||||
| 
 | 
 | ||||||
| import "strconv" | import "strconv" | ||||||
| 
 | 
 | ||||||
|  | @ -29,32 +29,34 @@ func _() { | ||||||
| 	_ = x[SLASH-18] | 	_ = x[SLASH-18] | ||||||
| 	_ = x[SLASH_DOT-19] | 	_ = x[SLASH_DOT-19] | ||||||
| 	_ = x[SLASH_UNDERSCORE-20] | 	_ = x[SLASH_UNDERSCORE-20] | ||||||
| 	_ = x[IDENTIFIER-21] | 	_ = x[SLASH_MODULO-21] | ||||||
| 	_ = x[STRING-22] | 	_ = x[MODULO-22] | ||||||
| 	_ = x[INTEGER-23] | 	_ = x[IDENTIFIER-23] | ||||||
| 	_ = x[FLOAT-24] | 	_ = x[STRING-24] | ||||||
| 	_ = x[AND-25] | 	_ = x[INTEGER-25] | ||||||
| 	_ = x[CLASS-26] | 	_ = x[FLOAT-26] | ||||||
| 	_ = x[ELSE-27] | 	_ = x[AND-27] | ||||||
| 	_ = x[FALSE-28] | 	_ = x[CLASS-28] | ||||||
| 	_ = x[FOR-29] | 	_ = x[ELSE-29] | ||||||
| 	_ = x[FUN-30] | 	_ = x[FALSE-30] | ||||||
| 	_ = x[IF-31] | 	_ = x[FOR-31] | ||||||
| 	_ = x[NIL-32] | 	_ = x[FUN-32] | ||||||
| 	_ = x[OR-33] | 	_ = x[IF-33] | ||||||
| 	_ = x[PRINT-34] | 	_ = x[NIL-34] | ||||||
| 	_ = x[RETURN-35] | 	_ = x[OR-35] | ||||||
| 	_ = x[SUPER-36] | 	_ = x[PRINT-36] | ||||||
| 	_ = x[THIS-37] | 	_ = x[RETURN-37] | ||||||
| 	_ = x[TRUE-38] | 	_ = x[SUPER-38] | ||||||
| 	_ = x[VAR-39] | 	_ = x[THIS-39] | ||||||
| 	_ = x[WHILE-40] | 	_ = x[TRUE-40] | ||||||
| 	_ = x[EOF-41] | 	_ = x[VAR-41] | ||||||
|  | 	_ = x[WHILE-42] | ||||||
|  | 	_ = x[EOF-43] | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const _TokenType_name = "LEFT_PARENRIGHT_PARENLEFT_BRACERIGHT_BRACECOMMADOTMINUSPLUSSEMICOLONSTARBANGBANG_EQUALEQUALEQUAL_EQUALGREATERGREATER_EQUALLESSLESS_EQUALSLASHSLASH_DOTSLASH_UNDERSCOREIDENTIFIERSTRINGINTEGERFLOATANDCLASSELSEFALSEFORFUNIFNILORPRINTRETURNSUPERTHISTRUEVARWHILEEOF" | const _TokenType_name = "LEFT_PARENRIGHT_PARENLEFT_BRACERIGHT_BRACECOMMADOTMINUSPLUSSEMICOLONSTARBANGBANG_EQUALEQUALEQUAL_EQUALGREATERGREATER_EQUALLESSLESS_EQUALSLASHSLASH_DOTSLASH_UNDERSCORESLASH_MODULOMODULOIDENTIFIERSTRINGINTEGERFLOATANDCLASSELSEFALSEFORFUNIFNILORPRINTRETURNSUPERTHISTRUEVARWHILEEOF" | ||||||
| 
 | 
 | ||||||
| var _TokenType_index = [...]uint16{0, 10, 21, 31, 42, 47, 50, 55, 59, 68, 72, 76, 86, 91, 102, 109, 122, 126, 136, 141, 150, 166, 176, 182, 189, 194, 197, 202, 206, 211, 214, 217, 219, 222, 224, 229, 235, 240, 244, 248, 251, 256, 259} | var _TokenType_index = [...]uint16{0, 10, 21, 31, 42, 47, 50, 55, 59, 68, 72, 76, 86, 91, 102, 109, 122, 126, 136, 141, 150, 166, 178, 184, 194, 200, 207, 212, 215, 220, 224, 229, 232, 235, 237, 240, 242, 247, 253, 258, 262, 266, 269, 274, 277} | ||||||
| 
 | 
 | ||||||
| func (i TokenType) String() string { | func (i TokenType) String() string { | ||||||
| 	if i < 0 || i >= TokenType(len(_TokenType_index)-1) { | 	if i < 0 || i >= TokenType(len(_TokenType_index)-1) { | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Petar Kapriš
						Petar Kapriš