MCPcopy Index your code
hub / github.com/MapServer/MapServer / yylex

Function yylex

mapparser.c:2696–2786  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2694/*
2695** Any extra C functions
2696*/
2697
2698int yylex(YYSTYPE *lvalp, parseObj *p)
2699{
2700 int token;
2701
2702 if(p->expr->curtoken == NULL) return(0); /* done */
2703
2704 // fprintf(stderr, "in yylex() - curtoken=%d...\n", p->expr->curtoken->token);
2705
2706 token = p->expr->curtoken->token; /* may override */
2707 switch(p->expr->curtoken->token) {
2708 case MS_TOKEN_LITERAL_NUMBER:
2709 token = NUMBER;
2710 (*lvalp).dblval = p->expr->curtoken->tokenval.dblval;
2711 break;
2712 case MS_TOKEN_LITERAL_SHAPE:
2713 token = SHAPE;
2714 // fprintf(stderr, "token value = %s\n", msShapeToWKT(p->expr->curtoken->tokenval.shpval));
2715 (*lvalp).shpval = p->expr->curtoken->tokenval.shpval;
2716 break;
2717 case MS_TOKEN_LITERAL_STRING:
2718 // printf("token value = %s\n", p->expr->curtoken->tokenval.strval);
2719 token = STRING;
2720 (*lvalp).strval = strdup(p->expr->curtoken->tokenval.strval);
2721 break;
2722 case MS_TOKEN_LITERAL_TIME:
2723 token = TIME;
2724 (*lvalp).tmval = p->expr->curtoken->tokenval.tmval;
2725 break;
2726
2727 case MS_TOKEN_COMPARISON_EQ: token = EQ; break;
2728 case MS_TOKEN_COMPARISON_IEQ: token = IEQ; break;
2729 case MS_TOKEN_COMPARISON_NE: token = NE; break;
2730 case MS_TOKEN_COMPARISON_LT: token = LT; break;
2731 case MS_TOKEN_COMPARISON_GT: token = GT; break;
2732 case MS_TOKEN_COMPARISON_LE: token = LE; break;
2733 case MS_TOKEN_COMPARISON_GE: token = GE; break;
2734 case MS_TOKEN_COMPARISON_RE: token = RE; break;
2735 case MS_TOKEN_COMPARISON_IRE: token = IRE; break;
2736
2737 case MS_TOKEN_COMPARISON_INTERSECTS: token = INTERSECTS; break;
2738 case MS_TOKEN_COMPARISON_DISJOINT: token = DISJOINT; break;
2739 case MS_TOKEN_COMPARISON_TOUCHES: token = TOUCHES; break;
2740 case MS_TOKEN_COMPARISON_OVERLAPS: token = OVERLAPS; break;
2741 case MS_TOKEN_COMPARISON_CROSSES: token = CROSSES; break;
2742 case MS_TOKEN_COMPARISON_WITHIN: token = WITHIN; break;
2743 case MS_TOKEN_COMPARISON_CONTAINS: token = CONTAINS; break;
2744 case MS_TOKEN_COMPARISON_BEYOND: token = BEYOND; break;
2745 case MS_TOKEN_COMPARISON_DWITHIN: token = DWITHIN; break;
2746
2747 case MS_TOKEN_LOGICAL_AND: token = AND; break;
2748 case MS_TOKEN_LOGICAL_OR: token = OR; break;
2749 case MS_TOKEN_LOGICAL_NOT: token = NOT; break;
2750
2751 case MS_TOKEN_BINDING_DOUBLE:
2752 case MS_TOKEN_BINDING_INTEGER:
2753 token = NUMBER;

Callers

nothing calls this directly

Calls 4

strdupFunction · 0.85
msTimeInitFunction · 0.85
msParseTimeFunction · 0.85
yyerrorFunction · 0.85

Tested by

no test coverage detected