new eval.go
This commit is contained in:
parent
89d6a1013b
commit
2a2e5b4527
15 changed files with 382 additions and 1215 deletions
|
|
@ -40,7 +40,7 @@ func GetVar(arg string, vt VarTable) *Token {
|
|||
|
||||
e := os.Getenv(arg)
|
||||
if e != "" {
|
||||
t := &Token{Inner: e}
|
||||
t := &Token{inner: e}
|
||||
if StrIsNumber(e) {
|
||||
t.Tag = NUMBER
|
||||
} else {
|
||||
|
|
@ -56,11 +56,13 @@ func GetVar(arg string, vt VarTable) *Token {
|
|||
}
|
||||
|
||||
// TODO: this could be much more optimal
|
||||
// TODO: Make sure variables are evaluated before being set
|
||||
// probably a stdlib thing
|
||||
func SetVar(variable string, value *Token, vt VarTable) {
|
||||
(*vt)[variable] = value
|
||||
if SyncTablesWithOSEnviron &&
|
||||
(value.Tag == NUMBER || value.Tag == STRING) {
|
||||
token := value.Inner.(string)
|
||||
token := value.Value()
|
||||
if value.Tag == NUMBER {
|
||||
// make sure its an int
|
||||
a, err := strconv.ParseFloat(token, 64)
|
||||
|
|
@ -91,7 +93,7 @@ func GetVarFromTables(arg string, library []VarTable) *Token {
|
|||
func InitVarTable(table VarTable) {
|
||||
for _, val := range os.Environ() {
|
||||
variable := strings.Split(val, "=")
|
||||
t := &Token{Inner: variable[1]}
|
||||
t := &Token{inner: variable[1]}
|
||||
if StrIsNumber(variable[1]) {
|
||||
t.Tag = NUMBER
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue