func (st *SymTable) InsertSymbol(symbol string, node *Node) bool {
	if st.IsDeclared(symbol) {
		return false
	}
	st.Entries[symbol] = node
	return true
}
InsertSymbol into symbol table, recursively checks if it exists, returns true for success
package ast
type SymTable struct {
	Entries map[string]*Node
	Parent  *SymTable
}
func NewSymTable() *SymTable {
	s := &SymTable{}
	s.Entries = make(map[string]*Node)
	return s
}