diff options
| author | Kyle Gunger <kgunger@gmail.com> | 2022-02-13 00:43:47 -0500 | 
|---|---|---|
| committer | Kyle Gunger <kgunger@gmail.com> | 2022-02-13 00:43:47 -0500 | 
| commit | 20fa93e2288a68a2f5de938ed9bd29bc9a300ced (patch) | |
| tree | 93a4b03aaffee845f1e658166909c2705851f202 | |
| parent | b74f28bf1e54dfcd7e679cbd688091d4b5f2642a (diff) | |
[EXEC] Small progress
| -rw-r--r-- | src/texec/eval.go | 29 | 
1 files changed, 20 insertions, 9 deletions
| diff --git a/src/texec/eval.go b/src/texec/eval.go index cacaa66..e18f56c 100644 --- a/src/texec/eval.go +++ b/src/texec/eval.go @@ -224,7 +224,7 @@ func getNodeRelative(s TArtifact) *tparse.Node {  		}  	} -	errOut(fmt.Sprintf("Failed to find node %v", s)) +	errOut(fmt.Sprintf("Failed to find node (relative) %v", s))  	return nil  } @@ -236,14 +236,14 @@ func getModDefRelative(s TArtifact) *TVariable {  			continue  		} -		_, prs := tmpmod.Defs[s.Name] +		val, prs := tmpmod.Defs[s.Name]  		if prs { -			return &(mod.Defs[a.Name]) +			return val  		}  	} -	errOut(fmt.Sprintf("Failed to resolve mod def artifact %v", s)) +	errOut(fmt.Sprintf("Failed to resolve mod def artifact (relative) %v", s))  	return nil  } @@ -434,7 +434,7 @@ func compositeToStruct(str TArtifact, cmp []interface{}) VarMap {  	out := make(VarMap)  	for i:=0;i<len(vars);i++ { -		if equateType(vars[i].Type, tInt) || equateType(t, tCharp) || equateType(t, tString) { +		if equateType(vars[i].Type, tInt) || equateType(vars[i].Type, tCharp) || equateType(vars[i].Type, tString) {  			out[vars[i].Data.(string)] = &(TVariable{vars[i].Type, cmp[i]})  		} @@ -447,11 +447,22 @@ func compositeToStruct(str TArtifact, cmp []interface{}) VarMap {  //# Finding Artifacts #  //##################### -func resolveModArtifact(a TArtifact) *TVariable { -	return nil -} -  func resolveArtifactCall(a TArtifact, params []TVariable) TVariable { +	tres := tnslResolve(a) +	if tres == 0 { +		if len(params) > 0 { +			return tnslEval(params[0], a.Name) +		} else { +			errOut("Need at least one arg to call tnsl.io func") +		} +	} else if tres == 1 { +		if len(params) > 1 { +			return tnslFileEval(params[0], params[1], a.Name) +		} else { +			errOut("Not enough args recieved to call tnsl.io.File method.") +		} +	} +  	return null  } |