func ExprFromToken(val scanner.Token) (Expr, error) {
	switch val.Type() {
	case token.Arg:
		return NewStringExpr(token.NewFileInfo(val.Line(), val.Column()), val.Value(), false), nil
	case token.String:
		return NewStringExpr(token.NewFileInfo(val.Line(), val.Column()), val.Value(), true), nil
	case token.Variable:
		return NewVarExpr(token.NewFileInfo(val.Line(), val.Column()), val.Value()), nil
	}
	return nil, fmt.Errorf("argFromToken doesn't support type %v", val)
}
ArgFromToken is a helper to get an argument based on the lexer token
package ast
import (
	"fmt"
	"github.com/madlambda/nash/scanner"
	"github.com/madlambda/nash/token"
)