fleshed out parser loop

This commit is contained in:
Aidan 2019-11-19 19:15:20 -08:00
parent cb84db53d8
commit 45d32cef6b
No known key found for this signature in database
GPG key ID: 327711E983899316
3 changed files with 21 additions and 1 deletions

Binary file not shown.

View file

@ -21,11 +21,29 @@ const (
)
func Parse(arg *Token) {
switch arg.tag {
case LIST_T:
for i := arg; i; i = i.next {
Parse(i)
}
if list_is_operation(arg) {
arg.tag = OPERATION_T
}
case OPERAND_T:
if string_is_operator(arg._inner) {
arg.tag = OPERATOR_T
}
default:
;// TODO: Tag a parse error?
}
}
func string_delimiters_valid(arg string) bool {
// TODO: Enhance this function
go
}
func list_is_operation(arg *Token) bool {

View file

@ -32,11 +32,13 @@ func Lex(input string) Token {
if is_list {
// TODO: Pass a pointer out of Lex and store a pointer
*iter._inner = Lex(tok.String())
*iter.tag = LIST_T
is_list = false
} else {
// TODO: Store a pointer to the contents of the stringbuilder
*iter._inner = tok.String()
*iter.tag = OPERAND_T
}
iter_alloced = true