From f3c0f366d2c8154d7a2f46332b3e69d9f33cbd4b Mon Sep 17 00:00:00 2001 From: Aidan Date: Thu, 21 Nov 2019 20:32:00 -0800 Subject: [PATCH] sketched out more TODOs --- pkg/shsh/parsers.go | 10 ++++------ pkg/shsh/symbol_table.go | 10 ++++++++++ 2 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 pkg/shsh/symbol_table.go diff --git a/pkg/shsh/parsers.go b/pkg/shsh/parsers.go index a4a4d4a..b932132 100644 --- a/pkg/shsh/parsers.go +++ b/pkg/shsh/parsers.go @@ -1,5 +1,3 @@ -// TODO: think about package names -// Should we have one for all our code? package shsh import ( @@ -16,8 +14,8 @@ import ( type parse_tag int const ( LIST_T parse_tag = iota + SYMBOL_T parse_tag = iota OPERAND_T parse_tag = iota - OPERATOR_T parse_tag = iota OPERATION_T parse_tag = iota ) @@ -33,8 +31,8 @@ func Parse(arg *Token) { } case OPERAND_T: - if string_is_operator(arg._inner) { - arg.tag = OPERATOR_T + if string_is_symbol(arg._inner) { + arg.tag = SYMBOL_T } default: @@ -64,7 +62,7 @@ func list_is_operation(arg *Token) bool { } // theres probly a way better way to do it. -func string_is_operator(arg string) bool { +func string_is_symbol(arg string) bool { for _, r := range arg { if !unicode.IsLetter(r) && r != '_' { return false diff --git a/pkg/shsh/symbol_table.go b/pkg/shsh/symbol_table.go new file mode 100644 index 0000000..746a986 --- /dev/null +++ b/pkg/shsh/symbol_table.go @@ -0,0 +1,10 @@ +package shsh + +import ( + "strings" +) + +// TODO: Enum{Operator, Variable} +// TODO build hashmap bucket +// TODO define type for function signature operation +// TODO functions for get_symbol, add_symbol