MCPcopy Create free account
hub / github.com/araddon/qlbridge / v

Method v

expr/parse.go:583–655  ·  view source on GitHub ↗
(depth int)

Source from the content-addressed store, hash-verified

581}
582
583func (t *tree) v(depth int) Node {
584 debugf(depth, "v: cur(): %v peek:%v", t.Cur(), t.Peek())
585 switch cur := t.Cur(); cur.T {
586 case lex.TokenInclude:
587 inc := t.Next() // consume Include
588 nxt := t.Next()
589 //u.Debugf("inc: %v nxt %v", inc, nxt)
590 if nxt.T == lex.TokenIdentity {
591 id := NewIdentityNode(&nxt)
592 return NewInclude(inc, id)
593 }
594 panic(fmt.Errorf("Unexpected Identity got %v", nxt))
595 case lex.TokenInteger, lex.TokenFloat:
596 n, err := NewNumberStr(cur.V)
597 if err != nil {
598 t.error(err)
599 }
600 t.Next()
601 return n
602 case lex.TokenValue:
603 n := NewStringNodeToken(cur)
604 t.Next()
605 debugf(depth, "after value %v", t.Cur())
606 return n
607 case lex.TokenValueEscaped:
608 n := NewStringNeedsEscape(cur)
609 t.Next()
610 return n
611 case lex.TokenIdentity:
612 n := NewIdentityNode(&cur)
613 t.Next() // Consume identity
614
615 return n
616 case lex.TokenNull:
617 t.Next()
618 return NewNull(cur)
619 case lex.TokenStar:
620 n := NewStringNoQuoteNode(cur.V)
621 t.Next()
622 return n
623 case lex.TokenLeftBracket:
624 // [ ie [1,2,3] json array or static array values
625 t.Next() // Consume the [
626 arrayVal, err := ValueArray(depth+1, t.TokenPager)
627 if err != nil {
628 t.unexpected(t.Cur(), "jsonarray unexpected token")
629 return nil
630 }
631 n := NewValueNode(arrayVal)
632 return n
633 case lex.TokenUdfExpr:
634 t.Next() // consume Function Name
635 return t.Func(depth, cur)
636 case lex.TokenLeftParenthesis:
637 t.Next() // Consume (
638 n := t.O(depth + 1)
639 debugf(depth, "v: paren T:%T %v cur:%v", n, n, t.Cur())
640 if bn, ok := n.(*BinaryNode); ok {

Callers 1

FMethod · 0.95

Calls 15

errorMethod · 0.95
unexpectedMethod · 0.95
FuncMethod · 0.95
OMethod · 0.95
expectMethod · 0.95
NewIdentityNodeFunction · 0.85
NewIncludeFunction · 0.85
NewNumberStrFunction · 0.85
NewStringNodeTokenFunction · 0.85
NewStringNeedsEscapeFunction · 0.85
NewNullFunction · 0.85
NewStringNoQuoteNodeFunction · 0.85

Tested by

no test coverage detected