Changeset 728


Ignore:
Timestamp:
10/09/15 16:42:23 (6 years ago)
Author:
rlacroix
Message:

Add new comparisons operators.

Those new operators return 0.0 if the comparison is false, 1.0 if it is true.

Location:
XIOS/trunk/src/parse_expr
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/parse_expr/lex_parser.cpp

    r642 r728  
    383383        7,    8,    9,   10,    4,   11,    4,   12,   13,   13, 
    384384       13,   13,   13,   13,   13,   13,   13,   13,    4,    4, 
    385         4,    4,    4,    4,   14,   15,   15,   15,   15,   15, 
    386  
    387        15,   15,   15,   15,   15,   15,   15,   15,   15,   15, 
    388        15,   15,   15,   15,   15,   15,   15,   15,   15,   15, 
    389        15,    4,    4,    4,   16,    4,    4,   15,   15,   15, 
    390        15,   15,   15,   15,   15,   15,   15,   15,   15,   15, 
    391        15,   15,   15,   15,   15,   15,   15,   15,   15,   15, 
    392        15,   15,   15,    4,    4,    4,    4,    4 
     385       14,   15,   16,    4,   17,   18,   18,   18,   18,   18, 
     386 
     387       18,   18,   18,   18,   18,   18,   18,   18,   18,   18, 
     388       18,   18,   18,   18,   18,   18,   18,   18,   18,   18, 
     389       18,    4,    4,    4,   19,    4,    4,   18,   18,   18, 
     390       18,   18,   18,   18,   18,   18,   18,   18,   18,   18, 
     391       18,   18,   18,   18,   18,   18,   18,   18,   18,   18, 
     392       18,   18,   18,    4,    4,    4,    4,    4 
    393393    }, 
    394394 
     
    401401        7,    8,    9,   10,    4,   11,    4,   12,   13,   13, 
    402402       13,   13,   13,   13,   13,   13,   13,   13,    4,    4, 
    403         4,    4,    4,    4,   14,   15,   15,   15,   15,   15, 
    404        15,   15,   15,   15,   15,   15,   15,   15,   15,   15, 
    405        15,   15,   15,   15,   15,   15,   15,   15,   15,   15, 
    406        15,    4,    4,    4,   16,    4,    4,   15,   15,   15, 
    407        15,   15,   15,   15,   15,   15,   15,   15,   15,   15, 
    408        15,   15,   15,   15,   15,   15,   15,   15,   15,   15, 
    409        15,   15,   15,    4,    4,    4,    4,    4 
     403       14,   15,   16,    4,   17,   18,   18,   18,   18,   18, 
     404       18,   18,   18,   18,   18,   18,   18,   18,   18,   18, 
     405       18,   18,   18,   18,   18,   18,   18,   18,   18,   18, 
     406       18,    4,    4,    4,   19,    4,    4,   18,   18,   18, 
     407       18,   18,   18,   18,   18,   18,   18,   18,   18,   18, 
     408       18,   18,   18,   18,   18,   18,   18,   18,   18,   18, 
     409       18,   18,   18,    4,    4,    4,    4,    4 
    410410    }, 
    411411 
     
    446446 
    447447    { 
    448         3,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   18, 
     448        3,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   21, 
    449449       -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5, 
    450450       -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5, 
    451        -5,   -5,   18,   -5,   -5,   -5,   -5,   -5,   -5,   -5, 
     451       -5,   -5,   21,   -5,   -5,   -5,   -5,   -5,   -5,   -5, 
    452452       -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5, 
    453453 
     
    470470       -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6, 
    471471       -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6, 
    472        -6,   -6,   -6,   -6,   -6,   19,   19,   19,   19,   19, 
    473        19,   19,   19,   19,   19,   19,   19,   19,   19,   19, 
    474        19,   19,   19,   19,   19,   19,   19,   19,   19,   19, 
    475        19,   -6,   -6,   -6,   -6,   -6,   -6,   19,   19,   19, 
    476        19,   19,   19,   19,   19,   19,   19,   19,   19,   19, 
    477        19,   19,   19,   19,   19,   19,   19,   19,   19,   19, 
    478  
    479        19,   19,   19,   -6,   -6,   -6,   -6,   -6 
     472       -6,   -6,   -6,   -6,   -6,   22,   22,   22,   22,   22, 
     473       22,   22,   22,   22,   22,   22,   22,   22,   22,   22, 
     474       22,   22,   22,   22,   22,   22,   22,   22,   22,   22, 
     475       22,   -6,   -6,   -6,   -6,   -6,   -6,   22,   22,   22, 
     476       22,   22,   22,   22,   22,   22,   22,   22,   22,   22, 
     477       22,   22,   22,   22,   22,   22,   22,   22,   22,   22, 
     478 
     479       22,   22,   22,   -6,   -6,   -6,   -6,   -6 
    480480    }, 
    481481 
     
    589589      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13, 
    590590      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13, 
    591       -13,  -13,  -13,  -13,  -13,  -13,   20,  -13,   21,   21, 
    592        21,   21,   21,   21,   21,   21,   21,   21,  -13,  -13, 
    593       -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,   22, 
     591      -13,  -13,  -13,  -13,  -13,  -13,   23,  -13,   24,   24, 
     592       24,   24,   24,   24,   24,   24,   24,   24,  -13,  -13, 
     593      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,   25, 
    594594      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13, 
    595595      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13, 
    596596      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13, 
    597       -13,   22,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13, 
     597      -13,   25,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13, 
    598598 
    599599      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13, 
     
    608608      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14, 
    609609      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14, 
    610       -14,  -14,  -14,  -14,  -14,   23,   23,   23,   23,   23, 
    611        23,   23,   23,   23,   23,   23,   23,   23,   23,   23, 
    612  
    613        23,   23,   23,   23,   23,   23,   23,   23,   23,   23, 
    614        23,  -14,  -14,  -14,  -14,  -14,  -14,   23,   23,   23, 
    615        23,   23,   23,   23,   23,   23,   23,   23,   23,   23, 
    616        23,   23,   23,   23,   23,   23,   23,   23,   23,   23, 
    617        23,   23,   23,  -14,  -14,  -14,  -14,  -14 
     610      -14,   26,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14, 
     611      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14, 
     612 
     613      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14, 
     614      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14, 
     615      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14, 
     616      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14, 
     617      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14 
    618618    }, 
    619619 
     
    623623      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15, 
    624624      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15, 
    625       -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,   24,   24, 
    626  
    627        24,   24,   24,   24,   24,   24,   24,   24,  -15,  -15, 
    628       -15,  -15,  -15,  -15,  -15,   24,   24,   24,   24,   24, 
    629        24,   24,   24,   24,   24,   24,   24,   24,   24,   24, 
    630        24,   24,   24,   24,   24,   24,   24,   24,   24,   24, 
    631        24,  -15,  -15,  -15,  -15,   24,  -15,   24,   24,   24, 
    632        24,   24,   24,   24,   24,   24,   24,   24,   24,   24, 
    633        24,   24,   24,   24,   24,   24,   24,   24,   24,   24, 
    634        24,   24,   24,  -15,  -15,  -15,  -15,  -15 
     625      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15, 
     626 
     627      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15, 
     628      -15,   27,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15, 
     629      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15, 
     630      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15, 
     631      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15, 
     632      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15, 
     633      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15, 
     634      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15 
    635635    }, 
    636636 
     
    643643      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16, 
    644644      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16, 
    645       -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16, 
     645      -16,   28,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16, 
    646646      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16, 
    647647      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16, 
     
    660660      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17, 
    661661      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17, 
    662       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17, 
    663       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17, 
    664       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17, 
    665  
    666       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17, 
    667       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17, 
    668       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17, 
    669       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17 
    670     }, 
    671  
    672     { 
    673         3,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,   18, 
    674       -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18, 
    675       -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18, 
    676       -18,  -18,   18,  -18,  -18,  -18,  -18,  -18,  -18,  -18, 
    677       -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18, 
    678       -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18, 
    679  
     662      -17,  -17,  -17,  -17,  -17,   29,   29,   29,   29,   29, 
     663       29,   29,   29,   29,   29,   29,   29,   29,   29,   29, 
     664       29,   29,   29,   29,   29,   29,   29,   29,   29,   29, 
     665 
     666       29,  -17,  -17,  -17,  -17,  -17,  -17,   29,   29,   29, 
     667       29,   29,   29,   29,   29,   29,   29,   29,   29,   29, 
     668       29,   29,   29,   29,   29,   29,   29,   29,   29,   29, 
     669       29,   29,   29,  -17,  -17,  -17,  -17,  -17 
     670    }, 
     671 
     672    { 
     673        3,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18, 
    680674      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18, 
    681675      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18, 
    682676      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18, 
    683       -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18, 
    684       -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18, 
    685       -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18, 
    686       -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18 
     677      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,   30,   30, 
     678       30,   30,   30,   30,   30,   30,   30,   30,  -18,  -18, 
     679 
     680      -18,  -18,  -18,  -18,  -18,   30,   30,   30,   30,   30, 
     681       30,   30,   30,   30,   30,   30,   30,   30,   30,   30, 
     682       30,   30,   30,   30,   30,   30,   30,   30,   30,   30, 
     683       30,  -18,  -18,  -18,  -18,   30,  -18,   30,   30,   30, 
     684       30,   30,   30,   30,   30,   30,   30,   30,   30,   30, 
     685       30,   30,   30,   30,   30,   30,   30,   30,   30,   30, 
     686       30,   30,   30,  -18,  -18,  -18,  -18,  -18 
    687687    }, 
    688688 
     
    693693 
    694694      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19, 
    695       -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,   25,   25, 
    696        25,   25,   25,   25,   25,   25,   25,   25,  -19,  -19, 
    697       -19,  -19,  -19,  -19,  -19,   25,   25,   25,   25,   25, 
    698        25,   25,   25,   25,   25,   25,   25,   25,   25,   25, 
    699        25,   25,   25,   25,   25,   25,   25,   25,   25,   25, 
    700        25,  -19,  -19,  -19,  -19,   25,  -19,   25,   25,   25, 
    701        25,   25,   25,   25,   25,   25,   25,   25,   25,   25, 
    702        25,   25,   25,   25,   25,   25,   25,   25,   25,   25, 
    703        25,   25,   25,  -19,  -19,  -19,  -19,  -19 
     695      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19, 
     696      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19, 
     697      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19, 
     698      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19, 
     699      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19, 
     700      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19, 
     701      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19, 
     702      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19, 
     703      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19 
    704704 
    705705    }, 
     
    710710      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20, 
    711711      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20, 
    712       -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,   26,   26, 
    713        26,   26,   26,   26,   26,   26,   26,   26,  -20,  -20, 
    714712      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20, 
    715713      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20, 
    716714      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20, 
    717715      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20, 
     716      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20, 
     717      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20, 
    718718 
    719719      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20, 
     
    723723 
    724724    { 
    725         3,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21, 
     725        3,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,   21, 
     726      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21, 
     727      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21, 
     728      -21,  -21,   21,  -21,  -21,  -21,  -21,  -21,  -21,  -21, 
    726729      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21, 
    727730      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21, 
    728731      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21, 
    729       -21,  -21,  -21,  -21,  -21,  -21,   20,  -21,   21,   21, 
    730        21,   21,   21,   21,   21,   21,   21,   21,  -21,  -21, 
    731       -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,   22, 
    732732 
    733733      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21, 
    734734      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21, 
    735735      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21, 
    736       -21,   22,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21, 
     736      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21, 
    737737      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21, 
    738738      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21 
     
    745745      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22, 
    746746 
    747       -22,  -22,  -22,   27,  -22,   27,  -22,  -22,   28,   28, 
    748        28,   28,   28,   28,   28,   28,   28,   28,  -22,  -22, 
    749       -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22, 
    750       -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22, 
    751       -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22, 
    752       -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22, 
    753       -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22, 
    754       -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22, 
    755       -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22 
     747      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,   31,   31, 
     748       31,   31,   31,   31,   31,   31,   31,   31,  -22,  -22, 
     749      -22,  -22,  -22,  -22,  -22,   31,   31,   31,   31,   31, 
     750       31,   31,   31,   31,   31,   31,   31,   31,   31,   31, 
     751       31,   31,   31,   31,   31,   31,   31,   31,   31,   31, 
     752       31,  -22,  -22,  -22,  -22,   31,  -22,   31,   31,   31, 
     753       31,   31,   31,   31,   31,   31,   31,   31,   31,   31, 
     754       31,   31,   31,   31,   31,   31,   31,   31,   31,   31, 
     755       31,   31,   31,  -22,  -22,  -22,  -22,  -22 
    756756    }, 
    757757 
     
    762762      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
    763763      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
    764       -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,   29,   29, 
    765        29,   29,   29,   29,   29,   29,   29,   29,  -23,  -23, 
    766       -23,  -23,  -23,  -23,  -23,   29,   29,   29,   29,   29, 
    767        29,   29,   29,   29,   29,   29,   29,   29,   29,   29, 
    768        29,   29,   29,   29,   29,   29,   29,   29,   29,   29, 
    769        29,  -23,  -23,  -23,  -23,   29,  -23,   29,   29,   29, 
    770        29,   29,   29,   29,   29,   29,   29,   29,   29,   29, 
    771  
    772        29,   29,   29,   29,   29,   29,   29,   29,   29,   29, 
    773        29,   29,   29,  -23,  -23,  -23,  -23,  -23 
     764      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,   32,   32, 
     765       32,   32,   32,   32,   32,   32,   32,   32,  -23,  -23, 
     766      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
     767      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
     768      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
     769      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
     770      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
     771 
     772      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
     773      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23 
    774774    }, 
    775775 
     
    779779      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24, 
    780780      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24, 
    781       -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,   24,   24, 
     781      -24,  -24,  -24,  -24,  -24,  -24,   23,  -24,   24,   24, 
    782782       24,   24,   24,   24,   24,   24,   24,   24,  -24,  -24, 
    783       -24,  -24,  -24,  -24,  -24,   24,   24,   24,   24,   24, 
    784        24,   24,   24,   24,   24,   24,   24,   24,   24,   24, 
    785  
    786        24,   24,   24,   24,   24,   24,   24,   24,   24,   24, 
    787        24,  -24,  -24,  -24,  -24,   24,  -24,   24,   24,   24, 
    788        24,   24,   24,   24,   24,   24,   24,   24,   24,   24, 
    789        24,   24,   24,   24,   24,   24,   24,   24,   24,   24, 
    790        24,   24,   24,  -24,  -24,  -24,  -24,  -24 
     783      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,   25, 
     784      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24, 
     785 
     786      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24, 
     787      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24, 
     788      -24,   25,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24, 
     789      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24, 
     790      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24 
    791791    }, 
    792792 
     
    796796      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25, 
    797797      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25, 
    798       -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,   25,   25, 
    799  
    800        25,   25,   25,   25,   25,   25,   25,   25,  -25,  -25, 
    801       -25,  -25,  -25,  -25,  -25,   25,   25,   25,   25,   25, 
    802        25,   25,   25,   25,   25,   25,   25,   25,   25,   25, 
    803        25,   25,   25,   25,   25,   25,   25,   25,   25,   25, 
    804        25,  -25,  -25,  -25,  -25,   25,  -25,   25,   25,   25, 
    805        25,   25,   25,   25,   25,   25,   25,   25,   25,   25, 
    806        25,   25,   25,   25,   25,   25,   25,   25,   25,   25, 
    807        25,   25,   25,  -25,  -25,  -25,  -25,  -25 
     798      -25,  -25,  -25,   33,  -25,   33,  -25,  -25,   34,   34, 
     799 
     800       34,   34,   34,   34,   34,   34,   34,   34,  -25,  -25, 
     801      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25, 
     802      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25, 
     803      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25, 
     804      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25, 
     805      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25, 
     806      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25, 
     807      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25 
    808808    }, 
    809809 
     
    812812      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
    813813 
    814       -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
    815       -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
    816       -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,   26,   26, 
    817        26,   26,   26,   26,   26,   26,   26,   26,  -26,  -26, 
    818       -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,   22, 
    819814      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
    820815      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
    821816      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
    822       -26,   22,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
     817      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
     818      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
     819      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
     820      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
     821      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
     822      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
    823823      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
    824824 
     
    831831      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27, 
    832832      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27, 
    833       -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,   28,   28, 
    834        28,   28,   28,   28,   28,   28,   28,   28,  -27,  -27, 
     833      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27, 
     834      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27, 
    835835      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27, 
    836836      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27, 
     
    848848      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28, 
    849849      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28, 
    850       -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,   28,   28, 
    851        28,   28,   28,   28,   28,   28,   28,   28,  -28,  -28, 
     850      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28, 
     851      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28, 
    852852 
    853853      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28, 
     
    866866 
    867867      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29, 
    868       -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,   29,   29, 
    869        29,   29,   29,   29,   29,   29,   29,   29,  -29,  -29, 
    870       -29,  -29,  -29,  -29,  -29,   29,   29,   29,   29,   29, 
    871        29,   29,   29,   29,   29,   29,   29,   29,   29,   29, 
    872        29,   29,   29,   29,   29,   29,   29,   29,   29,   29, 
    873        29,  -29,  -29,  -29,  -29,   29,  -29,   29,   29,   29, 
    874        29,   29,   29,   29,   29,   29,   29,   29,   29,   29, 
    875        29,   29,   29,   29,   29,   29,   29,   29,   29,   29, 
    876        29,   29,   29,  -29,  -29,  -29,  -29,  -29 
    877  
     868      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,   35,   35, 
     869       35,   35,   35,   35,   35,   35,   35,   35,  -29,  -29, 
     870      -29,  -29,  -29,  -29,  -29,   35,   35,   35,   35,   35, 
     871       35,   35,   35,   35,   35,   35,   35,   35,   35,   35, 
     872       35,   35,   35,   35,   35,   35,   35,   35,   35,   35, 
     873       35,  -29,  -29,  -29,  -29,   35,  -29,   35,   35,   35, 
     874       35,   35,   35,   35,   35,   35,   35,   35,   35,   35, 
     875       35,   35,   35,   35,   35,   35,   35,   35,   35,   35, 
     876       35,   35,   35,  -29,  -29,  -29,  -29,  -29 
     877 
     878    }, 
     879 
     880    { 
     881        3,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30, 
     882      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30, 
     883      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30, 
     884      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30, 
     885      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,   30,   30, 
     886       30,   30,   30,   30,   30,   30,   30,   30,  -30,  -30, 
     887      -30,  -30,  -30,  -30,  -30,   30,   30,   30,   30,   30, 
     888       30,   30,   30,   30,   30,   30,   30,   30,   30,   30, 
     889       30,   30,   30,   30,   30,   30,   30,   30,   30,   30, 
     890       30,  -30,  -30,  -30,  -30,   30,  -30,   30,   30,   30, 
     891 
     892       30,   30,   30,   30,   30,   30,   30,   30,   30,   30, 
     893       30,   30,   30,   30,   30,   30,   30,   30,   30,   30, 
     894       30,   30,   30,  -30,  -30,  -30,  -30,  -30 
     895    }, 
     896 
     897    { 
     898        3,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31, 
     899      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31, 
     900      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31, 
     901      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31, 
     902      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,   31,   31, 
     903       31,   31,   31,   31,   31,   31,   31,   31,  -31,  -31, 
     904      -31,  -31,  -31,  -31,  -31,   31,   31,   31,   31,   31, 
     905 
     906       31,   31,   31,   31,   31,   31,   31,   31,   31,   31, 
     907       31,   31,   31,   31,   31,   31,   31,   31,   31,   31, 
     908       31,  -31,  -31,  -31,  -31,   31,  -31,   31,   31,   31, 
     909       31,   31,   31,   31,   31,   31,   31,   31,   31,   31, 
     910       31,   31,   31,   31,   31,   31,   31,   31,   31,   31, 
     911       31,   31,   31,  -31,  -31,  -31,  -31,  -31 
     912    }, 
     913 
     914    { 
     915        3,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32, 
     916      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32, 
     917      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32, 
     918      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32, 
     919 
     920      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,   32,   32, 
     921       32,   32,   32,   32,   32,   32,   32,   32,  -32,  -32, 
     922      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,   25, 
     923      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32, 
     924      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32, 
     925      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32, 
     926      -32,   25,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32, 
     927      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32, 
     928      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32 
     929    }, 
     930 
     931    { 
     932        3,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33, 
     933 
     934      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33, 
     935      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33, 
     936      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33, 
     937      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,   34,   34, 
     938       34,   34,   34,   34,   34,   34,   34,   34,  -33,  -33, 
     939      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33, 
     940      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33, 
     941      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33, 
     942      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33, 
     943      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33, 
     944 
     945      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33, 
     946      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33 
     947    }, 
     948 
     949    { 
     950        3,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34, 
     951      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34, 
     952      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34, 
     953      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34, 
     954      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,   34,   34, 
     955       34,   34,   34,   34,   34,   34,   34,   34,  -34,  -34, 
     956      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34, 
     957      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34, 
     958 
     959      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34, 
     960      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34, 
     961      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34, 
     962      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34, 
     963      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34 
     964    }, 
     965 
     966    { 
     967        3,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35, 
     968      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35, 
     969      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35, 
     970      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35, 
     971      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,   35,   35, 
     972 
     973       35,   35,   35,   35,   35,   35,   35,   35,  -35,  -35, 
     974      -35,  -35,  -35,  -35,  -35,   35,   35,   35,   35,   35, 
     975       35,   35,   35,   35,   35,   35,   35,   35,   35,   35, 
     976       35,   35,   35,   35,   35,   35,   35,   35,   35,   35, 
     977       35,  -35,  -35,  -35,  -35,   35,  -35,   35,   35,   35, 
     978       35,   35,   35,   35,   35,   35,   35,   35,   35,   35, 
     979       35,   35,   35,   35,   35,   35,   35,   35,   35,   35, 
     980       35,   35,   35,  -35,  -35,  -35,  -35,  -35 
    878981    }, 
    879982 
     
    895998        (yy_c_buf_p) = yy_cp; 
    896999 
    897 #define YY_NUM_RULES 14 
    898 #define YY_END_OF_BUFFER 15 
     1000#define YY_NUM_RULES 19 
     1001#define YY_END_OF_BUFFER 20 
    8991002/* This struct is not used in this scanner, 
    9001003   but its presence is necessary. */ 
     
    9041007        flex_int32_t yy_nxt; 
    9051008        }; 
    906 static yyconst flex_int16_t yy_accept[30] = 
     1009static yyconst flex_int16_t yy_accept[36] = 
    9071010    {   0, 
    908         0,    0,   15,   14,    1,   14,   11,   12,    8,    6, 
    909         7,    9,    2,   14,    5,   10,   13,    1,    4,    0, 
    910         2,    0,    3,    5,    4,    2,    0,    2,    3 
     1011        0,    0,   20,   19,    1,   19,   16,   17,    8,    6, 
     1012        7,    9,    2,   12,   19,   13,   19,    5,   10,   18, 
     1013        1,    4,    0,    2,    0,   14,   11,   15,    3,    5, 
     1014        4,    2,    0,    2,    3 
    9111015    } ; 
    9121016 
     
    9141018static char *yy_last_accepting_cpos; 
    9151019 
    916 static yyconst yy_state_type yy_NUL_trans[30] = 
     1020static yyconst yy_state_type yy_NUL_trans[36] = 
    9171021    {   0, 
    918        17,   17,    0,    0,    0,    0,    0,    0,    0,    0, 
     1022       20,   20,    0,    0,    0,    0,    0,    0,    0,    0, 
    9191023        0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    920         0,    0,    0,    0,    0,    0,    0,    0,    0 
     1024        0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     1025        0,    0,    0,    0,    0 
    9211026    } ; 
    9221027 
     
    9481053#include "yacc_parser.hpp" 
    9491054 
    950 #line 951 "lex_parser.cpp" 
     1055#line 1056 "lex_parser.cpp" 
    9511056 
    9521057#define INITIAL 0 
     
    11491254 
    11501255 
    1151 #line 1152 "lex_parser.cpp" 
     1256#line 1257 "lex_parser.cpp" 
    11521257 
    11531258        while ( 1 )             /* loops until end-of-file is reached */ 
     
    12591364YY_RULE_SETUP 
    12601365#line 62 "lex_parser.lex" 
    1261 return LEFT_PARENTHESIS; 
     1366return EQ; 
    12621367        YY_BREAK 
    12631368case 12: 
    12641369YY_RULE_SETUP 
    12651370#line 63 "lex_parser.lex" 
    1266 return RIGHT_PARENTHESIS; 
     1371return LT; 
    12671372        YY_BREAK 
    12681373case 13: 
    12691374YY_RULE_SETUP 
    1270 #line 65 "lex_parser.lex" 
    1271 return END; 
     1375#line 64 "lex_parser.lex" 
     1376return GT; 
    12721377        YY_BREAK 
    12731378case 14: 
    12741379YY_RULE_SETUP 
     1380#line 65 "lex_parser.lex" 
     1381return LE; 
     1382        YY_BREAK 
     1383case 15: 
     1384YY_RULE_SETUP 
    12751385#line 66 "lex_parser.lex" 
     1386return GE; 
     1387        YY_BREAK 
     1388case 16: 
     1389YY_RULE_SETUP 
     1390#line 68 "lex_parser.lex" 
     1391return LEFT_PARENTHESIS; 
     1392        YY_BREAK 
     1393case 17: 
     1394YY_RULE_SETUP 
     1395#line 69 "lex_parser.lex" 
     1396return RIGHT_PARENTHESIS; 
     1397        YY_BREAK 
     1398case 18: 
     1399YY_RULE_SETUP 
     1400#line 71 "lex_parser.lex" 
     1401return END; 
     1402        YY_BREAK 
     1403case 19: 
     1404YY_RULE_SETUP 
     1405#line 72 "lex_parser.lex" 
    12761406ECHO; 
    12771407        YY_BREAK 
    1278 #line 1279 "lex_parser.cpp" 
     1408#line 1409 "lex_parser.cpp" 
    12791409case YY_STATE_EOF(INITIAL): 
    12801410        yyterminate(); 
     
    22662396#define YYTABLES_NAME "yytables" 
    22672397 
    2268 #line 65 "lex_parser.lex" 
     2398#line 71 "lex_parser.lex" 
  • XIOS/trunk/src/parse_expr/lex_parser.lex

    r642 r728  
    6060"^"  return POWER; 
    6161 
     62"==" return EQ; 
     63"<"  return LT; 
     64">"  return GT; 
     65"<=" return LE; 
     66">=" return GE; 
     67 
    6268"("  return LEFT_PARENTHESIS; 
    6369")"  return RIGHT_PARENTHESIS; 
  • XIOS/trunk/src/parse_expr/operator_expr.hpp

    r501 r728  
    88#include "array_new.hpp" 
    99 
    10 using namespace std ; 
     10using namespace std; 
    1111 
    1212namespace xios 
     
    1414  class COperatorExpr 
    1515  { 
    16     public:  
    17     typedef double (*functionScalar)(double) ; 
    18     typedef double (*functionScalarScalar)(double, double) ; 
    19     typedef CArray<double,1> (*functionField)(const CArray<double,1>&) ; 
    20     typedef CArray<double,1> (*functionFieldField)(const CArray<double,1>&, const CArray<double,1>&) ; 
    21     typedef CArray<double,1> (*functionFieldScalar)(const CArray<double,1>&, double) ; 
    22     typedef CArray<double,1> (*functionScalarField)(double, const CArray<double,1>&) ; 
    23      
     16    public: 
     17    typedef double (*functionScalar)(double); 
     18    typedef double (*functionScalarScalar)(double, double); 
     19    typedef CArray<double,1> (*functionField)(const CArray<double,1>&); 
     20    typedef CArray<double,1> (*functionFieldField)(const CArray<double,1>&, const CArray<double,1>&); 
     21    typedef CArray<double,1> (*functionFieldScalar)(const CArray<double,1>&, double); 
     22    typedef CArray<double,1> (*functionScalarField)(double, const CArray<double,1>&); 
     23 
    2424    COperatorExpr(void) 
    2525    { 
    26       opScalar[string("neg")]=neg_s ; 
    27       opScalar[string("cos")]=cos_s ; 
    28       opScalar[string("sin")]=sin_s ; 
    29       opScalar[string("tan")]=tan_s ; 
    30       opScalar[string("exp")]=exp_s ; 
    31       opScalar[string("log")]=log_s ; 
    32       opScalar[string("log10")]=log10_s ; 
    33       opScalar[string("sqrt")]=sqrt_s ; 
    34   
    35       opScalarScalar[string("add")]=add_ss ; 
    36       opScalarScalar[string("minus")]=minus_ss ; 
    37       opScalarScalar[string("mult")]=mult_ss ; 
    38       opScalarScalar[string("div")]=div_ss ; 
    39       opScalarScalar[string("pow")]=pow_ss ; 
    40  
    41       opField[string("neg")]=neg_f ; 
    42       opField[string("cos")]=cos_f ; 
    43       opField[string("sin")]=sin_f ; 
    44       opField[string("tan")]=tan_f ; 
    45       opField[string("exp")]=exp_f ; 
    46       opField[string("log")]=log_f ; 
    47       opField[string("log10")]=log10_f ; 
    48       opField[string("sqrt")]=sqrt_f ; 
    49   
    50       opFieldField[string("add")]=add_ff ; 
    51       opFieldField[string("minus")]=minus_ff ; 
    52       opFieldField[string("mult")]=mult_ff ; 
    53       opFieldField[string("div")]=div_ff ; 
    54       opFieldField[string("pow")]=pow_ff ; 
    55  
    56       opFieldScalar[string("add")]=add_fs ; 
    57       opFieldScalar[string("minus")]=minus_fs ; 
    58       opFieldScalar[string("mult")]=mult_fs ; 
    59       opFieldScalar[string("div")]=div_fs ; 
    60       opFieldScalar[string("pow")]=pow_fs ; 
    61        
    62       opScalarField[string("add")]=add_sf ; 
    63       opScalarField[string("minus")]=minus_sf ; 
    64       opScalarField[string("mult")]=mult_sf ; 
    65       opScalarField[string("div")]=div_sf ; 
    66     }     
     26      opScalar[string("neg")] = neg_s; 
     27      opScalar[string("cos")] = cos_s; 
     28      opScalar[string("sin")] = sin_s; 
     29      opScalar[string("tan")] = tan_s; 
     30      opScalar[string("exp")] = exp_s; 
     31      opScalar[string("log")] = log_s; 
     32      opScalar[string("log10")] = log10_s; 
     33      opScalar[string("sqrt")] = sqrt_s; 
     34 
     35      opScalarScalar[string("add")] = add_ss; 
     36      opScalarScalar[string("minus")] = minus_ss; 
     37      opScalarScalar[string("mult")] = mult_ss; 
     38      opScalarScalar[string("div")] = div_ss; 
     39      opScalarScalar[string("pow")] = pow_ss; 
     40      opScalarScalar[string("eq")] = eq_ss; 
     41      opScalarScalar[string("lt")] = lt_ss; 
     42      opScalarScalar[string("gt")] = gt_ss; 
     43      opScalarScalar[string("le")] = le_ss; 
     44      opScalarScalar[string("ge")] = ge_ss; 
     45 
     46      opField[string("neg")] = neg_f; 
     47      opField[string("cos")] = cos_f; 
     48      opField[string("sin")] = sin_f; 
     49      opField[string("tan")] = tan_f; 
     50      opField[string("exp")] = exp_f; 
     51      opField[string("log")] = log_f; 
     52      opField[string("log10")] = log10_f; 
     53      opField[string("sqrt")] = sqrt_f; 
     54 
     55      opFieldField[string("add")] = add_ff; 
     56      opFieldField[string("minus")] = minus_ff; 
     57      opFieldField[string("mult")] = mult_ff; 
     58      opFieldField[string("div")] = div_ff; 
     59      opFieldField[string("pow")] = pow_ff; 
     60      opFieldField[string("eq")] = eq_ff; 
     61      opFieldField[string("lt")] = lt_ff; 
     62      opFieldField[string("gt")] = gt_ff; 
     63      opFieldField[string("le")] = le_ff; 
     64      opFieldField[string("ge")] = ge_ff; 
     65 
     66      opFieldScalar[string("add")] = add_fs; 
     67      opFieldScalar[string("minus")] = minus_fs; 
     68      opFieldScalar[string("mult")] = mult_fs; 
     69      opFieldScalar[string("div")] = div_fs; 
     70      opFieldScalar[string("pow")] = pow_fs; 
     71      opFieldScalar[string("eq")] = eq_fs; 
     72      opFieldScalar[string("lt")] = lt_fs; 
     73      opFieldScalar[string("gt")] = gt_fs; 
     74      opFieldScalar[string("le")] = le_fs; 
     75      opFieldScalar[string("ge")] = ge_fs; 
     76 
     77      opScalarField[string("add")] = add_sf; 
     78      opScalarField[string("minus")] = minus_sf; 
     79      opScalarField[string("mult")] = mult_sf; 
     80      opScalarField[string("div")] = div_sf; 
     81      opScalarField[string("eq")] = eq_sf; 
     82      opScalarField[string("lt")] = lt_sf; 
     83      opScalarField[string("gt")] = gt_sf; 
     84      opScalarField[string("le")] = le_sf; 
     85      opScalarField[string("ge")] = ge_sf; 
     86    } 
    6787 
    6888    functionScalar getOpScalar(const string& id) 
    6989    { 
    70       map<string,double (*)(double)>::iterator it ; 
    71       it=opScalar.find(id) ; 
    72       if (it==opScalar.end()) ERROR("double (*)(double) COperatorExpr::getOpScalar(const string& id)",<<"unknown operator : "<<id)  
    73       return it->second ; 
    74     } 
    75    
     90      map<string,double (*)(double)>::iterator it; 
     91      it = opScalar.find(id); 
     92      if (it == opScalar.end()) ERROR("functionScalar COperatorExpr::getOpScalar(const string& id)", << "unknown operator : " << id) 
     93      return it->second; 
     94    } 
     95 
    7696    functionScalarScalar getOpScalarScalar(const string& id) 
    7797    { 
    78       map<string,double (*)(double,double)>::iterator it ; 
    79       it=opScalarScalar.find(id) ; 
    80       if (it==opScalarScalar.end()) ERROR("double (*)(double) COperatorExpr::getOpScalarScalar(const string& id)",<<"unknown operator : "<<id) 
    81       return it->second ;     
    82     } 
    83      
     98      map<string,double (*)(double,double)>::iterator it; 
     99      it = opScalarScalar.find(id); 
     100      if (it == opScalarScalar.end()) ERROR("functionScalarScalar COperatorExpr::getOpScalarScalar(const string& id)", << "unknown operator : " << id) 
     101      return it->second; 
     102    } 
     103 
    84104    functionField getOpField(const string& id) 
    85105    { 
    86       map<string,functionField>::iterator it ; 
    87       it=opField.find(id) ; 
    88       if (it==opField.end()) ERROR("functionField COperatorExpr::getOpField(const string& id)",<<"unknown operator : "<<id) 
    89       return it->second ;     
    90     } 
    91   
     106      map<string,functionField>::iterator it; 
     107      it = opField.find(id); 
     108      if (it == opField.end()) ERROR("functionField COperatorExpr::getOpField(const string& id)", << "unknown operator : " << id) 
     109      return it->second; 
     110    } 
     111 
    92112    functionFieldField getOpFieldField(const string& id) 
    93113    { 
    94       map<string,functionFieldField>::iterator it ; 
    95       it=opFieldField.find(id) ; 
    96       if (it==opFieldField.end()) ERROR("dfunctionFieldField COperatorExpr::getOpFieldField(const string& id)",<<"unknown operator : "<<id) 
    97       return it->second ;     
    98     } 
    99      
     114      map<string,functionFieldField>::iterator it; 
     115      it = opFieldField.find(id); 
     116      if (it == opFieldField.end()) ERROR("dfunctionFieldField COperatorExpr::getOpFieldField(const string& id)", << "unknown operator : " << id) 
     117      return it->second; 
     118    } 
     119 
    100120    functionFieldScalar getOpFieldScalar(const string& id) 
    101121    { 
    102       map<string,functionFieldScalar>::iterator it ; 
    103       it=opFieldScalar.find(id) ; 
    104       if (it==opFieldScalar.end()) ERROR("functionFieldScalar COperatorExpr::getOpFieldScalar(const string& id)",<<"unknown operator : "<<id) 
    105       return it->second ;     
    106     } 
    107      
     122      map<string,functionFieldScalar>::iterator it; 
     123      it = opFieldScalar.find(id); 
     124      if (it == opFieldScalar.end()) ERROR("functionFieldScalar COperatorExpr::getOpFieldScalar(const string& id)", << "unknown operator : " << id) 
     125      return it->second; 
     126    } 
     127 
    108128    functionScalarField getOpScalarField(const string& id) 
    109129    { 
    110       map<string,functionScalarField>::iterator it ; 
    111       it=opScalarField.find(id) ; 
    112       if (it==opScalarField.end()) ERROR("functionScalarField COperatorExpr::getOpFieldField(const string& id)",<<"unknown operator : "<<id) 
    113       return it->second ;     
    114     } 
    115      
    116     map<string,functionScalar> opScalar ; 
    117     map<string,functionScalarScalar> opScalarScalar ; 
    118     map<string,functionField> opField ; 
    119     map<string,functionFieldField> opFieldField ; 
    120     map<string,functionFieldScalar> opFieldScalar ; 
    121     map<string,functionScalarField> opScalarField ; 
    122  
    123     static inline double neg_s(double x)   {return -x;} 
    124     static inline double cos_s(double x)   {return std::cos(x);} 
    125     static inline double sin_s(double x)   {return std::sin(x);} 
    126     static inline double tan_s(double x)   {return std::tan(x);} 
    127     static inline double exp_s(double x)   {return std::exp(x);} 
    128     static inline double log_s(double x)   {return std::log(x);} 
    129     static inline double log10_s(double x) {return std::log10(x);} 
    130     static inline double sqrt_s(double x)  {return std::sqrt(x);} 
    131    
    132     static inline double add_ss(double x, double y)    {return x+y;} 
    133     static inline double minus_ss(double x, double y)  {return x-y;} 
    134     static inline double mult_ss(double x, double y)   {return x*y;} 
    135     static inline double div_ss(double x, double y)    {return x/y;} 
    136     static inline double pow_ss(double x, double y)    {return std::pow(x,y);} 
    137      
    138     static inline CArray<double,1> neg_f(const CArray<double,1>& x)   {return Array<double,1>(-x);} 
    139     static inline CArray<double,1> cos_f(const CArray<double,1>& x)   {return Array<double,1>(cos(x));} 
    140     static inline CArray<double,1> sin_f(const CArray<double,1>& x)   {return Array<double,1>(sin(x));} 
    141     static inline CArray<double,1> tan_f(const CArray<double,1>& x)   {return Array<double,1>(tan(x));} 
    142     static inline CArray<double,1> exp_f(const CArray<double,1>& x)   {return Array<double,1>(exp(x));} 
    143     static inline CArray<double,1> log_f(const CArray<double,1>& x)   {return Array<double,1>(log(x));} 
    144     static inline CArray<double,1> log10_f(const CArray<double,1>& x) {return Array<double,1>(log10(x));} 
    145     static inline CArray<double,1> sqrt_f(const CArray<double,1>& x)  {return Array<double,1>(sqrt(x));} 
    146      
    147     static inline CArray<double,1> add_ff(const CArray<double,1>& x, const CArray<double,1>& y)    {return Array<double,1>(x+y);} 
    148     static inline CArray<double,1> minus_ff(const CArray<double,1>& x, const CArray<double,1>& y)  {return Array<double,1>(x-y);} 
    149     static inline CArray<double,1> mult_ff(const CArray<double,1>& x, const CArray<double,1>& y)   {return Array<double,1>(x*y);} 
    150     static inline CArray<double,1> div_ff(const CArray<double,1>& x, const CArray<double,1>& y)    {return Array<double,1>(x/y);} 
    151     static inline CArray<double,1> pow_ff(const CArray<double,1>& x, const CArray<double,1>& y)    {return Array<double,1>(pow(x,y));} 
    152  
    153     static inline CArray<double,1> add_fs(const CArray<double,1>& x, double y)    {return Array<double,1>(x+y);} 
    154     static inline CArray<double,1> minus_fs(const CArray<double,1>& x, double y)  {return Array<double,1>(x-y);} 
    155     static inline CArray<double,1> mult_fs(const CArray<double,1>& x, double y)   {return Array<double,1>(x*y);} 
    156     static inline CArray<double,1> div_fs(const CArray<double,1>& x, double y)    {return Array<double,1>(x/y);} 
    157     static inline CArray<double,1> pow_fs(const CArray<double,1>& x, double y)    {return Array<double,1>(pow(x,y));}   
    158  
    159     static inline CArray<double,1> add_sf(double x, const CArray<double,1>& y)    {return Array<double,1>(x+y);} 
    160     static inline CArray<double,1> minus_sf(double x, const CArray<double,1>& y)  {return Array<double,1>(x-y);} 
    161     static inline CArray<double,1> mult_sf(double x, const CArray<double,1>& y)   {return Array<double,1>(x*y);} 
    162     static inline CArray<double,1> div_sf(double x, const CArray<double,1>& y)    {return Array<double,1>(x/y);} 
    163      
    164       
    165   } ; 
    166    
    167   extern COperatorExpr operatorExpr ; 
    168    
     130      map<string,functionScalarField>::iterator it; 
     131      it = opScalarField.find(id); 
     132      if (it == opScalarField.end()) ERROR("functionScalarField COperatorExpr::getOpFieldField(const string& id)", << "unknown operator : " << id) 
     133      return it->second; 
     134    } 
     135 
     136    map<string,functionScalar> opScalar; 
     137    map<string,functionScalarScalar> opScalarScalar; 
     138    map<string,functionField> opField; 
     139    map<string,functionFieldField> opFieldField; 
     140    map<string,functionFieldScalar> opFieldScalar; 
     141    map<string,functionScalarField> opScalarField; 
     142 
     143    static inline double neg_s(double x)   { return -x; } 
     144    static inline double cos_s(double x)   { return std::cos(x); } 
     145    static inline double sin_s(double x)   { return std::sin(x); } 
     146    static inline double tan_s(double x)   { return std::tan(x); } 
     147    static inline double exp_s(double x)   { return std::exp(x); } 
     148    static inline double log_s(double x)   { return std::log(x); } 
     149    static inline double log10_s(double x) { return std::log10(x); } 
     150    static inline double sqrt_s(double x)  { return std::sqrt(x); } 
     151 
     152    static inline double add_ss(double x, double y)   { return x + y; } 
     153    static inline double minus_ss(double x, double y) { return x - y; } 
     154    static inline double mult_ss(double x, double y)  { return x * y; } 
     155    static inline double div_ss(double x, double y)   { return x / y; } 
     156    static inline double pow_ss(double x, double y)   { return std::pow(x,y); } 
     157    static inline double eq_ss(double x, double y)    { return x == y; } 
     158    static inline double lt_ss(double x, double y)    { return x < y; } 
     159    static inline double gt_ss(double x, double y)    { return x > y; } 
     160    static inline double le_ss(double x, double y)    { return x <= y; } 
     161    static inline double ge_ss(double x, double y)    { return x >= y; } 
     162 
     163    static inline CArray<double,1> neg_f(const CArray<double,1>& x)   { return Array<double,1>(-x); } 
     164    static inline CArray<double,1> cos_f(const CArray<double,1>& x)   { return Array<double,1>(cos(x)); } 
     165    static inline CArray<double,1> sin_f(const CArray<double,1>& x)   { return Array<double,1>(sin(x)); } 
     166    static inline CArray<double,1> tan_f(const CArray<double,1>& x)   { return Array<double,1>(tan(x)); } 
     167    static inline CArray<double,1> exp_f(const CArray<double,1>& x)   { return Array<double,1>(exp(x)); } 
     168    static inline CArray<double,1> log_f(const CArray<double,1>& x)   { return Array<double,1>(log(x)); } 
     169    static inline CArray<double,1> log10_f(const CArray<double,1>& x) { return Array<double,1>(log10(x)); } 
     170    static inline CArray<double,1> sqrt_f(const CArray<double,1>& x)  { return Array<double,1>(sqrt(x)); } 
     171 
     172    static inline CArray<double,1> add_ff(const CArray<double,1>& x, const CArray<double,1>& y)   { return Array<double,1>(x + y); } 
     173    static inline CArray<double,1> minus_ff(const CArray<double,1>& x, const CArray<double,1>& y) { return Array<double,1>(x - y); } 
     174    static inline CArray<double,1> mult_ff(const CArray<double,1>& x, const CArray<double,1>& y)  { return Array<double,1>(x * y); } 
     175    static inline CArray<double,1> div_ff(const CArray<double,1>& x, const CArray<double,1>& y)   { return Array<double,1>(x / y); } 
     176    static inline CArray<double,1> pow_ff(const CArray<double,1>& x, const CArray<double,1>& y)   { return Array<double,1>(pow(x,y)); } 
     177    static inline CArray<double,1> eq_ff(const CArray<double,1>& x, const CArray<double,1>& y)    { return Array<double,1>(x == y); } 
     178    static inline CArray<double,1> lt_ff(const CArray<double,1>& x, const CArray<double,1>& y)    { return Array<double,1>(x < y); } 
     179    static inline CArray<double,1> gt_ff(const CArray<double,1>& x, const CArray<double,1>& y)    { return Array<double,1>(x > y); } 
     180    static inline CArray<double,1> le_ff(const CArray<double,1>& x, const CArray<double,1>& y)    { return Array<double,1>(x <= y); } 
     181    static inline CArray<double,1> ge_ff(const CArray<double,1>& x, const CArray<double,1>& y)    { return Array<double,1>(x >= y); } 
     182 
     183    static inline CArray<double,1> add_fs(const CArray<double,1>& x, double y)   { return Array<double,1>(x + y); } 
     184    static inline CArray<double,1> minus_fs(const CArray<double,1>& x, double y) { return Array<double,1>(x - y); } 
     185    static inline CArray<double,1> mult_fs(const CArray<double,1>& x, double y)  { return Array<double,1>(x * y); } 
     186    static inline CArray<double,1> div_fs(const CArray<double,1>& x, double y)   { return Array<double,1>(x / y); } 
     187    static inline CArray<double,1> pow_fs(const CArray<double,1>& x, double y)   { return Array<double,1>(pow(x,y)); } 
     188    static inline CArray<double,1> eq_fs(const CArray<double,1>& x, double y)    { return Array<double,1>(x == y); } 
     189    static inline CArray<double,1> lt_fs(const CArray<double,1>& x, double y)    { return Array<double,1>(x < y); } 
     190    static inline CArray<double,1> gt_fs(const CArray<double,1>& x, double y)    { return Array<double,1>(x > y); } 
     191    static inline CArray<double,1> le_fs(const CArray<double,1>& x, double y)    { return Array<double,1>(x <= y); } 
     192    static inline CArray<double,1> ge_fs(const CArray<double,1>& x, double y)    { return Array<double,1>(x >= y); } 
     193 
     194    static inline CArray<double,1> add_sf(double x, const CArray<double,1>& y)   { return Array<double,1>(x + y); } 
     195    static inline CArray<double,1> minus_sf(double x, const CArray<double,1>& y) { return Array<double,1>(x - y); } 
     196    static inline CArray<double,1> mult_sf(double x, const CArray<double,1>& y)  { return Array<double,1>(x * y); } 
     197    static inline CArray<double,1> div_sf(double x, const CArray<double,1>& y)   { return Array<double,1>(x / y); } 
     198    static inline CArray<double,1> eq_sf(double x, const CArray<double,1>& y)    { return Array<double,1>(x == y); } 
     199    static inline CArray<double,1> lt_sf(double x, const CArray<double,1>& y)    { return Array<double,1>(x < y); } 
     200    static inline CArray<double,1> gt_sf(double x, const CArray<double,1>& y)    { return Array<double,1>(x > y); } 
     201    static inline CArray<double,1> le_sf(double x, const CArray<double,1>& y)    { return Array<double,1>(x <= y); } 
     202    static inline CArray<double,1> ge_sf(double x, const CArray<double,1>& y)    { return Array<double,1>(x >= y); } 
     203  }; 
     204 
     205  extern COperatorExpr operatorExpr; 
    169206} 
    170207 
  • XIOS/trunk/src/parse_expr/yacc_parser.cpp

    r643 r728  
    140140    DIVIDE = 265, 
    141141    POWER = 266, 
    142     LEFT_PARENTHESIS = 267, 
    143     RIGHT_PARENTHESIS = 268, 
    144     END = 269, 
    145     NEG = 270 
     142    EQ = 267, 
     143    LT = 268, 
     144    GT = 269, 
     145    LE = 270, 
     146    GE = 271, 
     147    LEFT_PARENTHESIS = 272, 
     148    RIGHT_PARENTHESIS = 273, 
     149    END = 274, 
     150    NEG = 275 
    146151  }; 
    147152#endif 
     
    158163  xios::IFilterExprNode* filterNode; 
    159164 
    160 #line 161 "yacc_parser.cpp" /* yacc.c:355  */ 
     165#line 166 "yacc_parser.cpp" /* yacc.c:355  */ 
    161166}; 
    162167# define YYSTYPE_IS_TRIVIAL 1 
     
    173178/* Copy the second part of user declarations.  */ 
    174179 
    175 #line 176 "yacc_parser.cpp" /* yacc.c:358  */ 
     180#line 181 "yacc_parser.cpp" /* yacc.c:358  */ 
    176181 
    177182#ifdef short 
     
    415420#define YYFINAL  16 
    416421/* YYLAST -- Last index in YYTABLE.  */ 
    417 #define YYLAST   134 
     422#define YYLAST   204 
    418423 
    419424/* YYNTOKENS -- Number of terminals.  */ 
    420 #define YYNTOKENS  16 
     425#define YYNTOKENS  21 
    421426/* YYNNTS -- Number of nonterminals.  */ 
    422427#define YYNNTS  4 
    423428/* YYNRULES -- Number of rules.  */ 
    424 #define YYNRULES  32 
     429#define YYNRULES  52 
    425430/* YYNSTATES -- Number of states.  */ 
    426 #define YYNSTATES  68 
     431#define YYNSTATES  108 
    427432 
    428433/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned 
    429434   by yylex, with out-of-bounds checking.  */ 
    430435#define YYUNDEFTOK  2 
    431 #define YYMAXUTOK   270 
     436#define YYMAXUTOK   275 
    432437 
    433438#define YYTRANSLATE(YYX)                                                \ 
     
    465470       2,     2,     2,     2,     2,     2,     1,     2,     3,     4, 
    466471       5,     6,     7,     8,     9,    10,    11,    12,    13,    14, 
    467       15 
     472      15,    16,    17,    18,    19,    20 
    468473}; 
    469474 
     
    472477static const yytype_uint8 yyrline[] = 
    473478{ 
    474        0,    59,    59,    60,    64,    65,    66,    67,    68,    69, 
    475       70,    71,    72,    73,    77,    78,    79,    80,    81,    82, 
    476       83,    84,    85,    86,    87,    88,    89,    90,    91,    92, 
    477       93,    94,    95 
     479       0,    61,    61,    62,    66,    67,    68,    69,    70,    71, 
     480      72,    73,    74,    75,    76,    77,    78,    79,    80,    84, 
     481      85,    86,    87,    88,    89,    90,    91,    92,    93,    94, 
     482      95,    96,    97,    98,    99,   100,   101,   102,   103,   104, 
     483     105,   106,   107,   108,   109,   110,   111,   112,   113,   114, 
     484     115,   116,   117 
    478485}; 
    479486#endif 
     
    485492{ 
    486493  "$end", "error", "$undefined", "NUMBER", "VAR", "ID", "AVERAGE", "PLUS", 
    487   "MINUS", "TIMES", "DIVIDE", "POWER", "LEFT_PARENTHESIS", 
    488   "RIGHT_PARENTHESIS", "END", "NEG", "$accept", "Line", "Expression", 
    489   "Field_expr", YY_NULLPTR 
     494  "MINUS", "TIMES", "DIVIDE", "POWER", "EQ", "LT", "GT", "LE", "GE", 
     495  "LEFT_PARENTHESIS", "RIGHT_PARENTHESIS", "END", "NEG", "$accept", "Line", 
     496  "Expression", "Field_expr", YY_NULLPTR 
    490497}; 
    491498#endif 
     
    497504{ 
    498505       0,   256,   257,   258,   259,   260,   261,   262,   263,   264, 
    499      265,   266,   267,   268,   269,   270 
     506     265,   266,   267,   268,   269,   270,   271,   272,   273,   274, 
     507     275 
    500508}; 
    501509# endif 
    502510 
    503 #define YYPACT_NINF -6 
     511#define YYPACT_NINF -13 
    504512 
    505513#define yypact_value_is_default(Yystate) \ 
    506   (!!((Yystate) == (-6))) 
     514  (!!((Yystate) == (-13))) 
    507515 
    508516#define YYTABLE_NINF -1 
     
    513521  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 
    514522     STATE-NUM.  */ 
    515 static const yytype_int8 yypact[] = 
    516 { 
    517       55,    -6,    -6,    -4,    -6,    -1,    -1,    -6,     9,   123, 
    518       73,    -1,    14,    20,    81,    88,    -6,    -1,    -1,    -1, 
    519       -1,    67,    -1,    -1,    -1,    -1,    -1,    -6,    95,   102, 
    520       -6,    -6,    13,    19,    13,    19,    14,    20,    14,    20, 
    521       -2,    67,    67,    14,    13,    19,    13,    19,    14,    20, 
    522       14,    20,    14,    20,    -6,    -6,    67,    14,   109,    67, 
    523       67,    67,    67,   116,    24,    24,    14,    14 
     523static const yytype_int16 yypact[] = 
     524{ 
     525      90,   -13,   -13,   -12,   -13,    35,    35,   -13,    44,   188, 
     526     103,    35,    24,    34,   116,   128,   -13,    35,    35,    35, 
     527      35,    65,    35,    35,    35,    35,    35,    35,    35,    35, 
     528      35,    35,    35,    35,    35,    35,    35,   -13,   140,   152, 
     529     -13,   -13,    -7,    23,    -7,    23,    24,    34,    24,    34, 
     530      54,    65,    65,    24,     0,    67,     0,    67,     0,    67, 
     531       0,    67,     0,    67,    -7,    23,    -7,    23,    24,    34, 
     532      24,    34,    24,    34,     0,    67,     0,    67,     0,    67, 
     533       0,    67,     0,    67,   -13,   -13,    65,    24,   164,    65, 
     534      65,    65,    65,    65,    65,    65,    65,    65,   176,    95, 
     535      95,    24,    24,    92,    92,    92,    92,    92 
    524536}; 
    525537 
     
    529541static const yytype_uint8 yydefact[] = 
    530542{ 
    531        0,     4,     5,    14,    15,     0,     0,     2,     0,     0, 
    532        0,     0,    10,    20,     0,     0,     1,     0,     0,     0, 
     543       0,     4,     5,    19,    20,     0,     0,     2,     0,     0, 
     544       0,     0,    10,    25,     0,     0,     1,     0,     0,     0, 
     545       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    533546       0,     0,     0,     0,     0,     0,     0,     3,     0,     0, 
    534       12,    22,     6,    24,     7,    26,     8,    28,     9,    30, 
    535        0,     0,     0,    11,    23,    16,    25,    17,    27,    18, 
    536       29,    19,    31,    21,    13,    32,     0,    10,     0,     0, 
    537        0,     0,     0,     0,     6,     7,     8,     9 
     547      17,    32,     6,    34,     7,    36,     8,    38,     9,    40, 
     548       0,     0,     0,    11,    12,    43,    13,    45,    14,    47, 
     549      15,    49,    16,    51,    33,    21,    35,    22,    37,    23, 
     550      39,    24,    41,    26,    42,    27,    44,    28,    46,    29, 
     551      48,    30,    50,    31,    18,    52,     0,    10,     0,     0, 
     552       0,     0,     0,     0,     0,     0,     0,     0,     0,     6, 
     553       7,     8,     9,    12,    13,    14,    15,    16 
    538554}; 
    539555 
     
    541557static const yytype_int8 yypgoto[] = 
    542558{ 
    543       -6,    -6,    -5,    21 
     559     -13,   -13,    -5,    31 
    544560}; 
    545561 
     
    555571static const yytype_uint8 yytable[] = 
    556572{ 
    557       12,    14,     1,     2,     3,     4,    28,     5,    11,    16, 
    558       56,     6,    32,    34,    36,    38,    43,    44,    46,    48, 
    559       50,    52,    19,    20,    21,    21,    13,    15,    24,    25, 
    560       26,    26,    29,    61,    62,    21,    57,    58,    33,    35, 
    561       37,    39,     0,    45,    47,    49,    51,    53,     0,     0, 
    562        0,    63,     0,     0,    64,    65,    66,    67,     1,     2, 
    563        3,     4,     0,     5,     0,     0,     0,     6,     0,     7, 
    564        1,     2,    40,     0,     0,    41,     0,     0,     0,    42, 
    565       22,    23,    24,    25,    26,     0,     0,    27,    17,    18, 
    566       19,    20,    21,     0,    30,    22,    23,    24,    25,    26, 
    567        0,    31,    17,    18,    19,    20,    21,     0,    54,    22, 
    568       23,    24,    25,    26,     0,    55,    59,    60,    61,    62, 
    569       21,     0,    30,    59,    60,    61,    62,    21,     0,    54, 
    570       17,    18,    19,    20,    21 
     573      12,    14,    19,    20,    21,    11,    38,    17,    18,    19, 
     574      20,    21,    42,    44,    46,    48,    53,    54,    56,    58, 
     575      60,    62,    64,    66,    68,    70,    72,    74,    76,    78, 
     576      80,    82,    29,    30,    31,    21,    13,    15,     1,     2, 
     577       3,     4,    39,     5,    16,    31,    87,    88,    43,    45, 
     578      47,    49,     6,    55,    57,    59,    61,    63,    65,    67, 
     579      69,    71,    73,    75,    77,    79,    81,    83,     1,     2, 
     580      50,    86,     0,    51,    27,    28,    29,    30,    31,     0, 
     581       0,    98,    52,     0,    99,   100,   101,   102,   103,   104, 
     582     105,   106,   107,     1,     2,     3,     4,     0,     5,    89, 
     583      90,    91,    92,    21,    91,    92,    21,     6,     0,     7, 
     584      27,    28,    29,    30,    31,    32,    33,    34,    35,    36, 
     585       0,     0,    37,    17,    18,    19,    20,    21,    22,    23, 
     586      24,    25,    26,     0,    40,    27,    28,    29,    30,    31, 
     587      32,    33,    34,    35,    36,     0,    41,    17,    18,    19, 
     588      20,    21,    22,    23,    24,    25,    26,     0,    84,    27, 
     589      28,    29,    30,    31,    32,    33,    34,    35,    36,     0, 
     590      85,    89,    90,    91,    92,    21,    93,    94,    95,    96, 
     591      97,     0,    40,    89,    90,    91,    92,    21,    93,    94, 
     592      95,    96,    97,     0,    84,    17,    18,    19,    20,    21, 
     593      22,    23,    24,    25,    26 
    571594}; 
    572595 
    573596static const yytype_int8 yycheck[] = 
    574597{ 
    575        5,     6,     3,     4,     5,     6,    11,     8,    12,     0, 
    576       12,    12,    17,    18,    19,    20,    21,    22,    23,    24, 
    577       25,    26,     9,    10,    11,    11,     5,     6,     9,    10, 
    578       11,    11,    11,     9,    10,    11,    41,    42,    17,    18, 
    579       19,    20,    -1,    22,    23,    24,    25,    26,    -1,    -1, 
    580       -1,    56,    -1,    -1,    59,    60,    61,    62,     3,     4, 
    581        5,     6,    -1,     8,    -1,    -1,    -1,    12,    -1,    14, 
    582        3,     4,     5,    -1,    -1,     8,    -1,    -1,    -1,    12, 
    583        7,     8,     9,    10,    11,    -1,    -1,    14,     7,     8, 
    584        9,    10,    11,    -1,    13,     7,     8,     9,    10,    11, 
    585       -1,    13,     7,     8,     9,    10,    11,    -1,    13,     7, 
    586        8,     9,    10,    11,    -1,    13,     7,     8,     9,    10, 
    587       11,    -1,    13,     7,     8,     9,    10,    11,    -1,    13, 
    588        7,     8,     9,    10,    11 
     598       5,     6,     9,    10,    11,    17,    11,     7,     8,     9, 
     599      10,    11,    17,    18,    19,    20,    21,    22,    23,    24, 
     600      25,    26,    27,    28,    29,    30,    31,    32,    33,    34, 
     601      35,    36,     9,    10,    11,    11,     5,     6,     3,     4, 
     602       5,     6,    11,     8,     0,    11,    51,    52,    17,    18, 
     603      19,    20,    17,    22,    23,    24,    25,    26,    27,    28, 
     604      29,    30,    31,    32,    33,    34,    35,    36,     3,     4, 
     605       5,    17,    -1,     8,     7,     8,     9,    10,    11,    -1, 
     606      -1,    86,    17,    -1,    89,    90,    91,    92,    93,    94, 
     607      95,    96,    97,     3,     4,     5,     6,    -1,     8,     7, 
     608       8,     9,    10,    11,     9,    10,    11,    17,    -1,    19, 
     609       7,     8,     9,    10,    11,    12,    13,    14,    15,    16, 
     610      -1,    -1,    19,     7,     8,     9,    10,    11,    12,    13, 
     611      14,    15,    16,    -1,    18,     7,     8,     9,    10,    11, 
     612      12,    13,    14,    15,    16,    -1,    18,     7,     8,     9, 
     613      10,    11,    12,    13,    14,    15,    16,    -1,    18,     7, 
     614       8,     9,    10,    11,    12,    13,    14,    15,    16,    -1, 
     615      18,     7,     8,     9,    10,    11,    12,    13,    14,    15, 
     616      16,    -1,    18,     7,     8,     9,    10,    11,    12,    13, 
     617      14,    15,    16,    -1,    18,     7,     8,     9,    10,    11, 
     618      12,    13,    14,    15,    16 
    589619}; 
    590620 
     
    593623static const yytype_uint8 yystos[] = 
    594624{ 
    595        0,     3,     4,     5,     6,     8,    12,    14,    17,    18, 
    596       19,    12,    18,    19,    18,    19,     0,     7,     8,     9, 
    597       10,    11,     7,     8,     9,    10,    11,    14,    18,    19, 
    598       13,    13,    18,    19,    18,    19,    18,    19,    18,    19, 
    599        5,     8,    12,    18,    18,    19,    18,    19,    18,    19, 
    600       18,    19,    18,    19,    13,    13,    12,    18,    18,     7, 
    601        8,     9,    10,    18,    18,    18,    18,    18 
     625       0,     3,     4,     5,     6,     8,    17,    19,    22,    23, 
     626      24,    17,    23,    24,    23,    24,     0,     7,     8,     9, 
     627      10,    11,    12,    13,    14,    15,    16,     7,     8,     9, 
     628      10,    11,    12,    13,    14,    15,    16,    19,    23,    24, 
     629      18,    18,    23,    24,    23,    24,    23,    24,    23,    24, 
     630       5,     8,    17,    23,    23,    24,    23,    24,    23,    24, 
     631      23,    24,    23,    24,    23,    24,    23,    24,    23,    24, 
     632      23,    24,    23,    24,    23,    24,    23,    24,    23,    24, 
     633      23,    24,    23,    24,    18,    18,    17,    23,    23,     7, 
     634       8,     9,    10,    12,    13,    14,    15,    16,    23,    23, 
     635      23,    23,    23,    23,    23,    23,    23,    23 
    602636}; 
    603637 
     
    605639static const yytype_uint8 yyr1[] = 
    606640{ 
    607        0,    16,    17,    17,    18,    18,    18,    18,    18,    18, 
    608       18,    18,    18,    18,    19,    19,    19,    19,    19,    19, 
    609       19,    19,    19,    19,    19,    19,    19,    19,    19,    19, 
    610       19,    19,    19 
     641       0,    21,    22,    22,    23,    23,    23,    23,    23,    23, 
     642      23,    23,    23,    23,    23,    23,    23,    23,    23,    24, 
     643      24,    24,    24,    24,    24,    24,    24,    24,    24,    24, 
     644      24,    24,    24,    24,    24,    24,    24,    24,    24,    24, 
     645      24,    24,    24,    24,    24,    24,    24,    24,    24,    24, 
     646      24,    24,    24 
    611647}; 
    612648 
     
    615651{ 
    616652       0,     2,     1,     2,     1,     1,     3,     3,     3,     3, 
    617        2,     3,     3,     4,     1,     1,     3,     3,     3,     3, 
    618        2,     3,     3,     3,     3,     3,     3,     3,     3,     3, 
     653       2,     3,     3,     3,     3,     3,     3,     3,     4,     1, 
     654       1,     3,     3,     3,     3,     2,     3,     3,     3,     3, 
     655       3,     3,     3,     3,     3,     3,     3,     3,     3,     3, 
     656       3,     3,     3,     3,     3,     3,     3,     3,     3,     3, 
    619657       3,     3,     4 
    620658}; 
     
    12941332    { 
    12951333        case 2: 
    1296 #line 59 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1334#line 61 "yacc_parser.yacc" /* yacc.c:1646  */ 
    12971335    { /* Nothing to do */ } 
    1298 #line 1299 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1336#line 1337 "yacc_parser.cpp" /* yacc.c:1646  */ 
    12991337    break; 
    13001338 
    13011339  case 3: 
    1302 #line 60 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1340#line 62 "yacc_parser.yacc" /* yacc.c:1646  */ 
    13031341    { parsed = (yyvsp[-1].filterNode); } 
    1304 #line 1305 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1342#line 1343 "yacc_parser.cpp" /* yacc.c:1646  */ 
    13051343    break; 
    13061344 
    13071345  case 4: 
    1308 #line 64 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1346#line 66 "yacc_parser.yacc" /* yacc.c:1646  */ 
    13091347    { (yyval.scalarNode) = new CScalarValExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); } 
    1310 #line 1311 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1348#line 1349 "yacc_parser.cpp" /* yacc.c:1646  */ 
    13111349    break; 
    13121350 
    13131351  case 5: 
    1314 #line 65 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1352#line 67 "yacc_parser.yacc" /* yacc.c:1646  */ 
    13151353    { (yyval.scalarNode) = new CScalarVarExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); } 
    1316 #line 1317 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1354#line 1355 "yacc_parser.cpp" /* yacc.c:1646  */ 
    13171355    break; 
    13181356 
    13191357  case 6: 
    1320 #line 66 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1358#line 68 "yacc_parser.yacc" /* yacc.c:1646  */ 
    13211359    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "add", (yyvsp[0].scalarNode)); } 
    1322 #line 1323 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1360#line 1361 "yacc_parser.cpp" /* yacc.c:1646  */ 
    13231361    break; 
    13241362 
    13251363  case 7: 
    1326 #line 67 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1364#line 69 "yacc_parser.yacc" /* yacc.c:1646  */ 
    13271365    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "minus", (yyvsp[0].scalarNode)); } 
    1328 #line 1329 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1366#line 1367 "yacc_parser.cpp" /* yacc.c:1646  */ 
    13291367    break; 
    13301368 
    13311369  case 8: 
    1332 #line 68 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1370#line 70 "yacc_parser.yacc" /* yacc.c:1646  */ 
    13331371    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "mult", (yyvsp[0].scalarNode)); } 
    1334 #line 1335 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1372#line 1373 "yacc_parser.cpp" /* yacc.c:1646  */ 
    13351373    break; 
    13361374 
    13371375  case 9: 
    1338 #line 69 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1376#line 71 "yacc_parser.yacc" /* yacc.c:1646  */ 
    13391377    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "div", (yyvsp[0].scalarNode)); } 
    1340 #line 1341 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1378#line 1379 "yacc_parser.cpp" /* yacc.c:1646  */ 
    13411379    break; 
    13421380 
    13431381  case 10: 
    1344 #line 70 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1382#line 72 "yacc_parser.yacc" /* yacc.c:1646  */ 
    13451383    { (yyval.scalarNode) = new CScalarUnaryOpExprNode("neg", (yyvsp[0].scalarNode)); } 
    1346 #line 1347 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1384#line 1385 "yacc_parser.cpp" /* yacc.c:1646  */ 
    13471385    break; 
    13481386 
    13491387  case 11: 
    1350 #line 71 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1388#line 73 "yacc_parser.yacc" /* yacc.c:1646  */ 
    13511389    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "pow", (yyvsp[0].scalarNode)); } 
    1352 #line 1353 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1390#line 1391 "yacc_parser.cpp" /* yacc.c:1646  */ 
    13531391    break; 
    13541392 
    13551393  case 12: 
    1356 #line 72 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1394#line 74 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1395    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "eq", (yyvsp[0].scalarNode)); } 
     1396#line 1397 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1397    break; 
     1398 
     1399  case 13: 
     1400#line 75 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1401    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "lt", (yyvsp[0].scalarNode)); } 
     1402#line 1403 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1403    break; 
     1404 
     1405  case 14: 
     1406#line 76 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1407    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "gt", (yyvsp[0].scalarNode)); } 
     1408#line 1409 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1409    break; 
     1410 
     1411  case 15: 
     1412#line 77 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1413    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "le", (yyvsp[0].scalarNode)); } 
     1414#line 1415 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1415    break; 
     1416 
     1417  case 16: 
     1418#line 78 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1419    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "ge", (yyvsp[0].scalarNode)); } 
     1420#line 1421 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1421    break; 
     1422 
     1423  case 17: 
     1424#line 79 "yacc_parser.yacc" /* yacc.c:1646  */ 
    13571425    { (yyval.scalarNode) = (yyvsp[-1].scalarNode); } 
    1358 #line 1359 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1359     break; 
    1360  
    1361   case 13: 
    1362 #line 73 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1426#line 1427 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1427    break; 
     1428 
     1429  case 18: 
     1430#line 80 "yacc_parser.yacc" /* yacc.c:1646  */ 
    13631431    { (yyval.scalarNode) = new CScalarUnaryOpExprNode(*(yyvsp[-3].str), (yyvsp[-1].scalarNode)); delete (yyvsp[-3].str); } 
    1364 #line 1365 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1365     break; 
    1366  
    1367   case 14: 
    1368 #line 77 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1432#line 1433 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1433    break; 
     1434 
     1435  case 19: 
     1436#line 84 "yacc_parser.yacc" /* yacc.c:1646  */ 
    13691437    { (yyval.filterNode) = new CFilterFieldExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); } 
    1370 #line 1371 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1371     break; 
    1372  
    1373   case 15: 
    1374 #line 78 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1438#line 1439 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1439    break; 
     1440 
     1441  case 20: 
     1442#line 85 "yacc_parser.yacc" /* yacc.c:1646  */ 
    13751443    { (yyval.filterNode) = new CFilterTemporalFieldExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); } 
    1376 #line 1377 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1377     break; 
    1378  
    1379   case 16: 
    1380 #line 79 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1444#line 1445 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1445    break; 
     1446 
     1447  case 21: 
     1448#line 86 "yacc_parser.yacc" /* yacc.c:1646  */ 
    13811449    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "add", (yyvsp[0].filterNode)); } 
    1382 #line 1383 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1383     break; 
    1384  
    1385   case 17: 
    1386 #line 80 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1450#line 1451 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1451    break; 
     1452 
     1453  case 22: 
     1454#line 87 "yacc_parser.yacc" /* yacc.c:1646  */ 
    13871455    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "minus", (yyvsp[0].filterNode)); } 
    1388 #line 1389 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1389     break; 
    1390  
    1391   case 18: 
    1392 #line 81 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1456#line 1457 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1457    break; 
     1458 
     1459  case 23: 
     1460#line 88 "yacc_parser.yacc" /* yacc.c:1646  */ 
    13931461    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "mult", (yyvsp[0].filterNode)); } 
    1394 #line 1395 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1395     break; 
    1396  
    1397   case 19: 
    1398 #line 82 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1462#line 1463 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1463    break; 
     1464 
     1465  case 24: 
     1466#line 89 "yacc_parser.yacc" /* yacc.c:1646  */ 
    13991467    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "div", (yyvsp[0].filterNode)); } 
    1400 #line 1401 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1401     break; 
    1402  
    1403   case 20: 
    1404 #line 83 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1468#line 1469 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1469    break; 
     1470 
     1471  case 25: 
     1472#line 90 "yacc_parser.yacc" /* yacc.c:1646  */ 
    14051473    { (yyval.filterNode) = new CFilterUnaryOpExprNode("neg", (yyvsp[0].filterNode)); } 
    1406 #line 1407 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1407     break; 
    1408  
    1409   case 21: 
    1410 #line 84 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1474#line 1475 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1475    break; 
     1476 
     1477  case 26: 
     1478#line 91 "yacc_parser.yacc" /* yacc.c:1646  */ 
    14111479    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "pow", (yyvsp[0].filterNode)); } 
    1412 #line 1413 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1413     break; 
    1414  
    1415   case 22: 
    1416 #line 85 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1480#line 1481 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1481    break; 
     1482 
     1483  case 27: 
     1484#line 92 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1485    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "eq", (yyvsp[0].filterNode)); } 
     1486#line 1487 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1487    break; 
     1488 
     1489  case 28: 
     1490#line 93 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1491    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "lt", (yyvsp[0].filterNode)); } 
     1492#line 1493 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1493    break; 
     1494 
     1495  case 29: 
     1496#line 94 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1497    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "gt", (yyvsp[0].filterNode)); } 
     1498#line 1499 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1499    break; 
     1500 
     1501  case 30: 
     1502#line 95 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1503    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "le", (yyvsp[0].filterNode)); } 
     1504#line 1505 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1505    break; 
     1506 
     1507  case 31: 
     1508#line 96 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1509    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "ge", (yyvsp[0].filterNode)); } 
     1510#line 1511 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1511    break; 
     1512 
     1513  case 32: 
     1514#line 97 "yacc_parser.yacc" /* yacc.c:1646  */ 
    14171515    { (yyval.filterNode) = (yyvsp[-1].filterNode); } 
    1418 #line 1419 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1419     break; 
    1420  
    1421   case 23: 
    1422 #line 86 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1516#line 1517 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1517    break; 
     1518 
     1519  case 33: 
     1520#line 98 "yacc_parser.yacc" /* yacc.c:1646  */ 
    14231521    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "add", (yyvsp[0].scalarNode)); } 
    1424 #line 1425 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1425     break; 
    1426  
    1427   case 24: 
    1428 #line 87 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1522#line 1523 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1523    break; 
     1524 
     1525  case 34: 
     1526#line 99 "yacc_parser.yacc" /* yacc.c:1646  */ 
    14291527    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "add", (yyvsp[0].filterNode)); } 
    1430 #line 1431 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1431     break; 
    1432  
    1433   case 25: 
    1434 #line 88 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1528#line 1529 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1529    break; 
     1530 
     1531  case 35: 
     1532#line 100 "yacc_parser.yacc" /* yacc.c:1646  */ 
    14351533    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "minus", (yyvsp[0].scalarNode)); } 
    1436 #line 1437 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1437     break; 
    1438  
    1439   case 26: 
    1440 #line 89 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1534#line 1535 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1535    break; 
     1536 
     1537  case 36: 
     1538#line 101 "yacc_parser.yacc" /* yacc.c:1646  */ 
    14411539    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "minus", (yyvsp[0].filterNode)); } 
    1442 #line 1443 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1443     break; 
    1444  
    1445   case 27: 
    1446 #line 90 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1540#line 1541 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1541    break; 
     1542 
     1543  case 37: 
     1544#line 102 "yacc_parser.yacc" /* yacc.c:1646  */ 
    14471545    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "mult", (yyvsp[0].scalarNode)); } 
    1448 #line 1449 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1449     break; 
    1450  
    1451   case 28: 
    1452 #line 91 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1546#line 1547 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1547    break; 
     1548 
     1549  case 38: 
     1550#line 103 "yacc_parser.yacc" /* yacc.c:1646  */ 
    14531551    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "mult", (yyvsp[0].filterNode)); } 
    1454 #line 1455 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1455     break; 
    1456  
    1457   case 29: 
    1458 #line 92 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1552#line 1553 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1553    break; 
     1554 
     1555  case 39: 
     1556#line 104 "yacc_parser.yacc" /* yacc.c:1646  */ 
    14591557    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "div", (yyvsp[0].scalarNode)); } 
    1460 #line 1461 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1461     break; 
    1462  
    1463   case 30: 
    1464 #line 93 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1558#line 1559 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1559    break; 
     1560 
     1561  case 40: 
     1562#line 105 "yacc_parser.yacc" /* yacc.c:1646  */ 
    14651563    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "div", (yyvsp[0].filterNode)); } 
    1466 #line 1467 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1467     break; 
    1468  
    1469   case 31: 
    1470 #line 94 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1564#line 1565 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1565    break; 
     1566 
     1567  case 41: 
     1568#line 106 "yacc_parser.yacc" /* yacc.c:1646  */ 
    14711569    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "pow", (yyvsp[0].scalarNode)); } 
    1472 #line 1473 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1473     break; 
    1474  
    1475   case 32: 
    1476 #line 95 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1570#line 1571 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1571    break; 
     1572 
     1573  case 42: 
     1574#line 107 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1575    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "eq", (yyvsp[0].scalarNode)); } 
     1576#line 1577 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1577    break; 
     1578 
     1579  case 43: 
     1580#line 108 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1581    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "eq", (yyvsp[0].filterNode)); } 
     1582#line 1583 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1583    break; 
     1584 
     1585  case 44: 
     1586#line 109 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1587    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "lt", (yyvsp[0].scalarNode)); } 
     1588#line 1589 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1589    break; 
     1590 
     1591  case 45: 
     1592#line 110 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1593    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "lt", (yyvsp[0].filterNode)); } 
     1594#line 1595 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1595    break; 
     1596 
     1597  case 46: 
     1598#line 111 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1599    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "gt", (yyvsp[0].scalarNode)); } 
     1600#line 1601 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1601    break; 
     1602 
     1603  case 47: 
     1604#line 112 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1605    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "gt", (yyvsp[0].filterNode)); } 
     1606#line 1607 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1607    break; 
     1608 
     1609  case 48: 
     1610#line 113 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1611    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "le", (yyvsp[0].scalarNode)); } 
     1612#line 1613 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1613    break; 
     1614 
     1615  case 49: 
     1616#line 114 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1617    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "le", (yyvsp[0].filterNode)); } 
     1618#line 1619 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1619    break; 
     1620 
     1621  case 50: 
     1622#line 115 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1623    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "ge", (yyvsp[0].scalarNode)); } 
     1624#line 1625 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1625    break; 
     1626 
     1627  case 51: 
     1628#line 116 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1629    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "ge", (yyvsp[0].filterNode)); } 
     1630#line 1631 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1631    break; 
     1632 
     1633  case 52: 
     1634#line 117 "yacc_parser.yacc" /* yacc.c:1646  */ 
    14771635    { (yyval.filterNode) = new CFilterUnaryOpExprNode(*(yyvsp[-3].str), (yyvsp[-1].filterNode)); delete (yyvsp[-3].str); } 
    1478 #line 1479 "yacc_parser.cpp" /* yacc.c:1646  */ 
    1479     break; 
    1480  
    1481  
    1482 #line 1483 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1636#line 1637 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1637    break; 
     1638 
     1639 
     1640#line 1641 "yacc_parser.cpp" /* yacc.c:1646  */ 
    14831641      default: break; 
    14841642    } 
     
    17081866  return yyresult; 
    17091867} 
    1710 #line 97 "yacc_parser.yacc" /* yacc.c:1906  */ 
     1868#line 119 "yacc_parser.yacc" /* yacc.c:1906  */ 
    17111869 
    17121870 
  • XIOS/trunk/src/parse_expr/yacc_parser.hpp

    r642 r728  
    5555    DIVIDE = 265, 
    5656    POWER = 266, 
    57     LEFT_PARENTHESIS = 267, 
    58     RIGHT_PARENTHESIS = 268, 
    59     END = 269, 
    60     NEG = 270 
     57    EQ = 267, 
     58    LT = 268, 
     59    GT = 269, 
     60    LE = 270, 
     61    GE = 271, 
     62    LEFT_PARENTHESIS = 272, 
     63    RIGHT_PARENTHESIS = 273, 
     64    END = 274, 
     65    NEG = 275 
    6166  }; 
    6267#endif 
     
    7378  xios::IFilterExprNode* filterNode; 
    7479 
    75 #line 76 "yacc_parser.hpp" /* yacc.c:1909  */ 
     80#line 81 "yacc_parser.hpp" /* yacc.c:1909  */ 
    7681}; 
    7782# define YYSTYPE_IS_TRIVIAL 1 
  • XIOS/trunk/src/parse_expr/yacc_parser.yacc

    r643 r728  
    4242%token <str> VAR ID AVERAGE 
    4343%token PLUS MINUS TIMES DIVIDE POWER 
     44%token EQ LT GT LE GE 
    4445%token LEFT_PARENTHESIS RIGHT_PARENTHESIS 
    4546%token <str> END 
    4647 
     48%left EQ LT GT LE GE 
    4749%left PLUS MINUS 
    4850%left TIMES DIVIDE 
     
    7072          | MINUS Expression %prec NEG   { $$ = new CScalarUnaryOpExprNode("neg", $2); } 
    7173          | Expression POWER Expression  { $$ = new CScalarBinaryOpExprNode($1, "pow", $3); } 
     74          | Expression EQ Expression  { $$ = new CScalarBinaryOpExprNode($1, "eq", $3); } 
     75          | Expression LT Expression  { $$ = new CScalarBinaryOpExprNode($1, "lt", $3); } 
     76          | Expression GT Expression  { $$ = new CScalarBinaryOpExprNode($1, "gt", $3); } 
     77          | Expression LE Expression  { $$ = new CScalarBinaryOpExprNode($1, "le", $3); } 
     78          | Expression GE Expression  { $$ = new CScalarBinaryOpExprNode($1, "ge", $3); } 
    7279          | LEFT_PARENTHESIS Expression RIGHT_PARENTHESIS    { $$ = $2; } 
    7380          | ID LEFT_PARENTHESIS Expression RIGHT_PARENTHESIS { $$ = new CScalarUnaryOpExprNode(*$1, $3); delete $1; } 
     
    8390          | MINUS Field_expr %prec NEG   { $$ = new CFilterUnaryOpExprNode("neg", $2); } 
    8491          | Field_expr POWER Field_expr  { $$ = new CFilterFieldFieldOpExprNode($1, "pow", $3); } 
     92          | Field_expr EQ Field_expr { $$ = new CFilterFieldFieldOpExprNode($1, "eq", $3); } 
     93          | Field_expr LT Field_expr { $$ = new CFilterFieldFieldOpExprNode($1, "lt", $3); } 
     94          | Field_expr GT Field_expr { $$ = new CFilterFieldFieldOpExprNode($1, "gt", $3); } 
     95          | Field_expr LE Field_expr { $$ = new CFilterFieldFieldOpExprNode($1, "le", $3); } 
     96          | Field_expr GE Field_expr { $$ = new CFilterFieldFieldOpExprNode($1, "ge", $3); } 
    8597          | LEFT_PARENTHESIS Field_expr RIGHT_PARENTHESIS       { $$ = $2; } 
    8698          | Field_expr PLUS Expression   { $$ = new CFilterFieldScalarOpExprNode($1, "add", $3); } 
     
    93105          | Expression DIVIDE Field_expr { $$ = new CFilterScalarFieldOpExprNode($1, "div", $3); } 
    94106          | Field_expr POWER Expression  { $$ = new CFilterFieldScalarOpExprNode($1, "pow", $3); } 
     107          | Field_expr EQ Expression { $$ = new CFilterFieldScalarOpExprNode($1, "eq", $3); } 
     108          | Expression EQ Field_expr { $$ = new CFilterScalarFieldOpExprNode($1, "eq", $3); } 
     109          | Field_expr LT Expression { $$ = new CFilterFieldScalarOpExprNode($1, "lt", $3); } 
     110          | Expression LT Field_expr { $$ = new CFilterScalarFieldOpExprNode($1, "lt", $3); } 
     111          | Field_expr GT Expression { $$ = new CFilterFieldScalarOpExprNode($1, "gt", $3); } 
     112          | Expression GT Field_expr { $$ = new CFilterScalarFieldOpExprNode($1, "gt", $3); } 
     113          | Field_expr LE Expression { $$ = new CFilterFieldScalarOpExprNode($1, "le", $3); } 
     114          | Expression LE Field_expr { $$ = new CFilterScalarFieldOpExprNode($1, "le", $3); } 
     115          | Field_expr GE Expression { $$ = new CFilterFieldScalarOpExprNode($1, "ge", $3); } 
     116          | Expression GE Field_expr { $$ = new CFilterScalarFieldOpExprNode($1, "ge", $3); } 
    95117          | ID LEFT_PARENTHESIS Field_expr RIGHT_PARENTHESIS { $$ = new CFilterUnaryOpExprNode(*$1, $3); delete $1; } 
    96118          ; 
Note: See TracChangeset for help on using the changeset viewer.