github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/lang/expressions/execute.go (about)

     1  package expressions
     2  
     3  import (
     4  	"github.com/lmorg/murex/lang"
     5  	"github.com/lmorg/murex/lang/expressions/primitives"
     6  )
     7  
     8  func ExecuteExpr(p *lang.Process, expression []rune) (*primitives.DataType, error) {
     9  	tree := NewParser(p, expression, 0)
    10  
    11  	err := tree.parseExpression(true, true)
    12  	if err != nil {
    13  		return nil, err
    14  	}
    15  
    16  	return tree.executeExpr()
    17  }
    18  
    19  func (tree *ParserT) ParseStatement(exec bool) error {
    20  	tree.statement = new(StatementT)
    21  	tree.charPos = 0
    22  
    23  	err := tree.parseStatement(exec)
    24  	if err != nil {
    25  		return err
    26  	}
    27  
    28  	return nil
    29  }