github.com/TIBCOSoftware/flogo-lib@v0.5.9/core/mapper/exprmapper/expression/expression.go (about) 1 package expression 2 3 import ( 4 "fmt" 5 6 "github.com/TIBCOSoftware/flogo-lib/core/mapper/exprmapper/expression/expr" 7 "github.com/TIBCOSoftware/flogo-lib/core/mapper/exprmapper/expression/gocc/lexer" 8 "github.com/TIBCOSoftware/flogo-lib/core/mapper/exprmapper/expression/gocc/parser" 9 "github.com/TIBCOSoftware/flogo-lib/logger" 10 ) 11 12 var log = logger.GetLogger("expression") 13 14 func ParseExpression(exprString string) (expr.Expr, error) { 15 st, err := getParser(exprString) 16 if err != nil { 17 return nil, err 18 } 19 20 ex, ok := st.(expr.Expr) 21 if ok { 22 return ex, nil 23 } 24 return nil, fmt.Errorf("Not a valid expression str") 25 } 26 27 func getParser(exampleStr string) (interface{}, error) { 28 lex := lexer.NewLexer([]byte(exampleStr)) 29 p := parser.NewParser() 30 st, err := p.Parse(lex) 31 return st, err 32 } 33 34 func IsExpression(mapValue string) bool { 35 _, err := ParseExpression(mapValue) 36 return err == nil 37 }