MCPcopy
hub / github.com/rgburke/grv / Process

Method Process

cmd/grv/expression_processor.go:37–59  ·  view source on GitHub ↗

Process performs type conversion and validates the expression

()

Source from the content-addressed store, hash-verified

35
36// Process performs type conversion and validates the expression
37func (expressionProcessor *ExpressionProcessor) Process() (expression Expression, errors []error) {
38 if logicalExpression, ok := expressionProcessor.expression.(LogicalExpression); ok {
39 log.Debugf("Performing type conversion on expression comparisons")
40 if errors = logicalExpression.ConvertTypes(expressionProcessor.fieldTypeDescriptor); len(errors) > 0 {
41 log.Debugf("ConvertTypes returned errors")
42 return
43 }
44
45 log.Debugf("Performing expression validation")
46 if errors = logicalExpression.Validate(expressionProcessor.fieldTypeDescriptor); len(errors) > 0 {
47 log.Debugf("Expression is not valid")
48 return
49 }
50
51 log.Debugf("Finished processing expression")
52 expression = logicalExpression
53 } else {
54 errors = append(errors, fmt.Errorf("Expected logical expression but received expression of type %v",
55 reflect.TypeOf(expressionProcessor.expression).Elem().Name()))
56 }
57
58 return
59}
60
61type binaryOperatorPosition int
62

Calls 3

ConvertTypesMethod · 0.65
ValidateMethod · 0.65
NameMethod · 0.65