25 lines
490 B
Go
25 lines
490 B
Go
package shsh
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
type VarTable map[string]*Token
|
|
|
|
var (
|
|
GlobalVarTable *VarTable
|
|
)
|
|
|
|
// Library represents variables defined in inner scope
|
|
// It is assumed library is ordered from innermost scope to outermost scope
|
|
func GetVar(arg string, library []VarTable) *Token {
|
|
for dict, scope := library {
|
|
val, ok := dict[arg]
|
|
if ok {
|
|
// TODO: maybe log which scope it was found in?
|
|
return val
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|