Ignore:
Timestamp:
01/25/17 16:25:17 (7 years ago)
Author:
yushan
Message:

initialize the branch

Location:
XIOS/dev/branch_yushan/src/parse_expr
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/branch_yushan/src/parse_expr/filter_expr_node.cpp

    r1001 r1037  
    4040  boost::shared_ptr<COutputPin> CFilterTemporalFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
    4141  { 
    42     boost::shared_ptr<COutputPin> outputPin; 
    43  
    44     if (fieldId == "this") 
    45       outputPin = thisField.getSelfTemporalDataFilter(gc, thisField.freq_op.isEmpty() ? TimeStep : thisField.freq_op); 
    46     else if (CField::has(fieldId)) 
    47     { 
    48       CField* field = CField::get(fieldId); 
    49       if (field == &thisField) 
    50         ERROR("boost::shared_ptr<COutputPin> CFilterTemporalFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const", 
    51               << "The field " << fieldId << " has an invalid reference to itself. " 
    52               << "Use the keyword \"this\" if you want to reference the input data sent to this field."); 
    53  
    54       field->buildFilterGraph(gc, false); 
    55       outputPin = field->getTemporalDataFilter(gc, thisField.freq_op.isEmpty() ? TimeStep : thisField.freq_op); 
    56     } 
    57     else 
     42    if (!CField::has(fieldId)) 
    5843      ERROR("boost::shared_ptr<COutputPin> CFilterTemporalFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const", 
    5944            << "The field " << fieldId << " does not exist."); 
    6045 
    61     return outputPin; 
     46    CField* field = CField::get(fieldId); 
     47    if (field == &thisField) 
     48      ERROR("boost::shared_ptr<COutputPin> CFilterFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const", 
     49            << "The field " << fieldId << " has an invalid reference to itself."); 
     50 
     51    field->buildFilterGraph(gc, false); 
     52    return field->getTemporalDataFilter(gc, thisField.freq_op.isEmpty() ? TimeStep : thisField.freq_op); 
    6253  } 
    6354 
  • XIOS/dev/branch_yushan/src/parse_expr/lex_parser.cpp

    r1019 r1037  
    1010#define YY_FLEX_MAJOR_VERSION 2 
    1111#define YY_FLEX_MINOR_VERSION 5 
    12 #define YY_FLEX_SUBMINOR_VERSION 37 
     12#define YY_FLEX_SUBMINOR_VERSION 39 
    1313#if YY_FLEX_SUBMINOR_VERSION > 0 
    1414#define FLEX_BETA 
     
    143143/* Size of default input buffer. */ 
    144144#ifndef YY_BUF_SIZE 
     145#ifdef __ia64__ 
     146/* On IA-64, the buffer size is 16k, not 8k. 
     147 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. 
     148 * Ditto for the __ia64__ case accordingly. 
     149 */ 
     150#define YY_BUF_SIZE 32768 
     151#else 
    145152#define YY_BUF_SIZE 16384 
     153#endif /* __ia64__ */ 
    146154#endif 
    147155 
     
    169177 
    170178    #define YY_LESS_LINENO(n) 
     179    #define YY_LINENO_REWIND_TO(ptr) 
    171180     
    172181/* Return all but the first "n" matched characters back to the input stream. */ 
     
    347356extern char *yytext; 
    348357#define yytext_ptr yytext 
     358 
    349359static yyconst flex_int16_t yy_nxt[][128] = 
    350360    { 
     
    564574      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12, 
    565575      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12, 
    566       -12,   23,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12, 
     576      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12, 
    567577      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12, 
    568578      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12, 
     
    579589      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13, 
    580590      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13, 
    581       -13,  -13,  -13,  -13,  -13,  -13,   24,  -13,   25,   25, 
    582        25,   25,   25,   25,   25,   25,   25,   25,  -13,  -13, 
    583       -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,   26, 
     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, 
    584594      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13, 
    585595      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13, 
    586596      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13, 
    587       -13,   26,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13, 
     597      -13,   25,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13, 
    588598 
    589599      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13, 
     
    598608      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14, 
    599609      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14, 
    600       -14,   27,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14, 
     610      -14,   26,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14, 
    601611      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14, 
    602612 
     
    616626 
    617627      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15, 
    618       -15,   28,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15, 
     628      -15,   27,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15, 
    619629      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15, 
    620630      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15, 
     
    633643      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16, 
    634644      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16, 
    635       -16,   29,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16, 
     645      -16,   28,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16, 
    636646      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16, 
    637647      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16, 
     
    650660      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17, 
    651661      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17, 
    652       -17,  -17,  -17,  -17,  -17,   30,   30,   30,   30,   30, 
    653        30,   30,   30,   30,   30,   30,   30,   30,   30,   30, 
    654        30,   30,   30,   30,   30,   30,   30,   30,   30,   30, 
    655  
    656        30,  -17,  -17,  -17,  -17,  -17,  -17,   30,   30,   30, 
    657        30,   30,   30,   30,   30,   30,   30,   30,   30,   30, 
    658        30,   30,   30,   30,   30,   30,   30,   30,   30,   30, 
    659        30,   30,   30,  -17,  -17,  -17,  -17,  -17 
     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 
    660670    }, 
    661671 
     
    665675      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18, 
    666676      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18, 
    667       -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,   31,   31, 
    668        31,   31,   31,   31,   31,   31,   31,   31,  -18,  -18, 
    669  
    670       -18,  -18,  -18,  -18,  -18,   31,   31,   31,   31,   31, 
    671        31,   31,   31,   31,   31,   31,   31,   31,   31,   31, 
    672        31,   31,   31,   31,   31,   31,   31,   31,   31,   31, 
    673        31,  -18,  -18,  -18,  -18,   31,  -18,   31,   31,   31, 
    674        31,   31,   31,   31,   31,   31,   31,   31,   31,   31, 
    675        31,   31,   31,   31,   31,   31,   31,   31,   31,   31, 
    676        31,   31,   31,  -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 
    677687    }, 
    678688 
     
    735745      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22, 
    736746 
    737       -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,   32,   32, 
    738        32,   32,   32,   32,   32,   32,   32,   32,  -22,  -22, 
    739       -22,  -22,  -22,  -22,  -22,   32,   32,   32,   32,   32, 
    740        32,   32,   32,   32,   32,   32,   32,   32,   32,   32, 
    741        32,   32,   32,   32,   32,   32,   32,   32,   32,   32, 
    742        32,  -22,  -22,  -22,  -22,   32,  -22,   32,   32,   32, 
    743        32,   32,   32,   32,   32,   32,   32,   32,   32,   32, 
    744        32,   32,   32,   32,   32,   32,   32,   32,   32,   32, 
    745        32,   32,   32,  -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 
    746756    }, 
    747757 
     
    749759        3,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
    750760 
     761      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
     762      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
     763      -23,  -23,  -23,  -23,  -23,  -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, 
    751766      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
    752767      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
     
    754769      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
    755770      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
    756       -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
    757       -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
    758       -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
    759       -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
    760       -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
    761771 
    762772      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, 
     
    769779      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24, 
    770780      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24, 
    771       -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,   33,   33, 
    772        33,   33,   33,   33,   33,   33,   33,   33,  -24,  -24, 
     781      -24,  -24,  -24,  -24,  -24,  -24,   23,  -24,   24,   24, 
     782       24,   24,   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 
    773786      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24, 
    774787      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24, 
    775  
    776       -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24, 
    777       -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24, 
    778       -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24, 
     788      -24,   25,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24, 
    779789      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24, 
    780790      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24 
     
    786796      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25, 
    787797      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25, 
    788       -25,  -25,  -25,  -25,  -25,  -25,   24,  -25,   25,   25, 
    789  
    790        25,   25,   25,   25,   25,   25,   25,   25,  -25,  -25, 
    791       -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,   26, 
     798      -25,  -25,  -25,   33,  -25,   33,  -25,  -25,   34,   34, 
     799 
     800       34,   34,   34,   34,   34,   34,   34,   34,  -25,  -25, 
    792801      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25, 
    793802      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25, 
    794803      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25, 
    795       -25,   26,  -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, 
    796806      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25, 
    797807      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25 
     
    804814      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
    805815      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
    806       -26,  -26,  -26,   34,  -26,   34,  -26,  -26,   35,   35, 
    807        35,   35,   35,   35,   35,   35,   35,   35,  -26,  -26, 
     816      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
     817      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
    808818      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
    809819      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, 
     
    856866 
    857867      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29, 
    858       -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29, 
    859       -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29, 
    860       -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29, 
    861       -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29, 
    862       -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29, 
    863       -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29, 
    864       -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29, 
    865       -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29, 
    866       -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29 
     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 
    867877 
    868878    }, 
     
    873883      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30, 
    874884      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30, 
    875       -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,   36,   36, 
    876        36,   36,   36,   36,   36,   36,   36,   36,  -30,  -30, 
    877       -30,  -30,  -30,  -30,  -30,   36,   36,   36,   36,   36, 
    878        36,   36,   36,   36,   36,   36,   36,   36,   36,   36, 
    879        36,   36,   36,   36,   36,   36,   36,   36,   36,   36, 
    880        36,  -30,  -30,  -30,  -30,   36,  -30,   36,   36,   36, 
    881  
    882        36,   36,   36,   36,   36,   36,   36,   36,   36,   36, 
    883        36,   36,   36,   36,   36,   36,   36,   36,   36,   36, 
    884        36,   36,   36,  -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 
    885895    }, 
    886896 
     
    910920      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,   32,   32, 
    911921       32,   32,   32,   32,   32,   32,   32,   32,  -32,  -32, 
    912       -32,  -32,  -32,  -32,  -32,   32,   32,   32,   32,   32, 
    913        32,   32,   32,   32,   32,   32,   32,   32,   32,   32, 
    914        32,   32,   32,   32,   32,   32,   32,   32,   32,   32, 
    915        32,  -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 
     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 
    919929    }, 
    920930 
     
    925935      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33, 
    926936      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33, 
    927       -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,   33,   33, 
    928        33,   33,   33,   33,   33,   33,   33,   33,  -33,  -33, 
    929       -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,   26, 
     937      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,   34,   34, 
     938       34,   34,   34,   34,   34,   34,   34,   34,  -33,  -33, 
    930939      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33, 
    931940      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33, 
    932941      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33, 
    933       -33,   26,  -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, 
    934944 
    935945      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33, 
     
    942952      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34, 
    943953      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34, 
    944       -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,   35,   35, 
    945        35,   35,   35,   35,   35,   35,   35,   35,  -34,  -34, 
     954      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,   34,   34, 
     955       34,   34,   34,   34,   34,   34,   34,   34,  -34,  -34, 
    946956      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34, 
    947957      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34, 
     
    962972 
    963973       35,   35,   35,   35,   35,   35,   35,   35,  -35,  -35, 
    964       -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35, 
    965       -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35, 
    966       -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35, 
    967       -35,  -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 
    971     }, 
    972  
    973     { 
    974         3,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36, 
    975       -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36, 
    976  
    977       -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36, 
    978       -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36, 
    979       -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,   36,   36, 
    980        36,   36,   36,   36,   36,   36,   36,   36,  -36,  -36, 
    981       -36,  -36,  -36,  -36,  -36,   36,   36,   36,   36,   36, 
    982        36,   36,   36,   36,   36,   36,   36,   36,   36,   36, 
    983        36,   36,   36,   36,   36,   36,   36,   36,   36,   36, 
    984        36,  -36,  -36,  -36,  -36,   36,  -36,   36,   36,   36, 
    985        36,   36,   36,   36,   36,   36,   36,   36,   36,   36, 
    986        36,   36,   36,   36,   36,   36,   36,   36,   36,   36, 
    987  
    988        36,   36,   36,  -36,  -36,  -36,  -36,  -36 
     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 
    989981    }, 
    990982 
     
    1006998        (yy_c_buf_p) = yy_cp; 
    1007999 
    1008 #define YY_NUM_RULES 20 
    1009 #define YY_END_OF_BUFFER 21 
     1000#define YY_NUM_RULES 19 
     1001#define YY_END_OF_BUFFER 20 
    10101002/* This struct is not used in this scanner, 
    10111003   but its presence is necessary. */ 
     
    10151007        flex_int32_t yy_nxt; 
    10161008        }; 
    1017 static yyconst flex_int16_t yy_accept[37] = 
     1009static yyconst flex_int16_t yy_accept[36] = 
    10181010    {   0, 
    1019         0,    0,   21,   20,    1,   20,   17,   18,    8,    6, 
    1020         7,    9,    2,   12,   20,   13,   20,    5,   10,   19, 
    1021         1,    4,   16,    0,    2,    0,   14,   11,   15,    3, 
    1022         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 
    10231015    } ; 
    10241016 
     
    10261018static char *yy_last_accepting_cpos; 
    10271019 
    1028 static yyconst yy_state_type yy_NUL_trans[37] = 
     1020static yyconst yy_state_type yy_NUL_trans[36] = 
    10291021    {   0, 
    10301022       20,   20,    0,    0,    0,    0,    0,    0,    0,    0, 
    10311023        0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    10321024        0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    1033         0,    0,    0,    0,    0,    0 
     1025        0,    0,    0,    0,    0 
    10341026    } ; 
    10351027 
     
    10611053#include "yacc_parser.hpp" 
    10621054 
    1063 #line 1064 "lex_parser.cpp" 
     1055#line 1056 "lex_parser.cpp" 
    10641056 
    10651057#define INITIAL 0 
     
    11421134/* Amount of stuff to slurp up with each read. */ 
    11431135#ifndef YY_READ_BUF_SIZE 
     1136#ifdef __ia64__ 
     1137/* On IA-64, the buffer size is 16k, not 8k */ 
     1138#define YY_READ_BUF_SIZE 16384 
     1139#else 
    11441140#define YY_READ_BUF_SIZE 8192 
     1141#endif /* __ia64__ */ 
    11451142#endif 
    11461143 
     
    12271224        register int yy_act; 
    12281225     
    1229 #line 29 "lex_parser.lex" 
    1230  
    1231  
    1232 #line 1233 "lex_parser.cpp" 
    1233  
    12341226        if ( !(yy_init) ) 
    12351227                { 
     
    12571249                yy_load_buffer_state( ); 
    12581250                } 
     1251 
     1252        { 
     1253#line 29 "lex_parser.lex" 
     1254 
     1255 
     1256#line 1257 "lex_parser.cpp" 
    12591257 
    12601258        while ( 1 )             /* loops until end-of-file is reached */ 
     
    13901388case 16: 
    13911389YY_RULE_SETUP 
    1392 #line 67 "lex_parser.lex" 
    1393 return NE; 
     1390#line 68 "lex_parser.lex" 
     1391return LEFT_PARENTHESIS; 
    13941392        YY_BREAK 
    13951393case 17: 
    13961394YY_RULE_SETUP 
    13971395#line 69 "lex_parser.lex" 
    1398 return LEFT_PARENTHESIS; 
     1396return RIGHT_PARENTHESIS; 
    13991397        YY_BREAK 
    14001398case 18: 
    14011399YY_RULE_SETUP 
    1402 #line 70 "lex_parser.lex" 
    1403 return RIGHT_PARENTHESIS; 
     1400#line 71 "lex_parser.lex" 
     1401return END; 
    14041402        YY_BREAK 
    14051403case 19: 
    14061404YY_RULE_SETUP 
    14071405#line 72 "lex_parser.lex" 
    1408 return END; 
    1409         YY_BREAK 
    1410 case 20: 
    1411 YY_RULE_SETUP 
    1412 #line 73 "lex_parser.lex" 
    14131406ECHO; 
    14141407        YY_BREAK 
    1415 #line 1416 "lex_parser.cpp" 
     1408#line 1409 "lex_parser.cpp" 
    14161409case YY_STATE_EOF(INITIAL): 
    14171410        yyterminate(); 
     
    15441537        } /* end of action switch */ 
    15451538                } /* end of scanning one token */ 
     1539        } /* end of user's declarations */ 
    15461540} /* end of yylex */ 
    15471541 
     
    24022396#define YYTABLES_NAME "yytables" 
    24032397 
    2404 #line 73 "lex_parser.lex" 
     2398#line 71 "lex_parser.lex" 
  • XIOS/dev/branch_yushan/src/parse_expr/lex_parser.lex

    r1019 r1037  
    6565"<=" return LE; 
    6666">=" return GE; 
    67 "/=" return NE; 
    6867 
    6968"("  return LEFT_PARENTHESIS; 
  • XIOS/dev/branch_yushan/src/parse_expr/operator_expr.hpp

    r1019 r1037  
    4343      opScalarScalar[string("le")] = le_ss; 
    4444      opScalarScalar[string("ge")] = ge_ss; 
    45       opScalarScalar[string("ne")] = ne_ss; 
    4645 
    4746      opField[string("neg")] = neg_f; 
     
    6463      opFieldField[string("le")] = le_ff; 
    6564      opFieldField[string("ge")] = ge_ff; 
    66       opFieldField[string("ne")] = ne_ff; 
    6765 
    6866      opFieldScalar[string("add")] = add_fs; 
     
    7674      opFieldScalar[string("le")] = le_fs; 
    7775      opFieldScalar[string("ge")] = ge_fs; 
    78       opFieldScalar[string("ne")] = ne_fs; 
    7976 
    8077      opScalarField[string("add")] = add_sf; 
     
    8784      opScalarField[string("le")] = le_sf; 
    8885      opScalarField[string("ge")] = ge_sf; 
    89       opScalarField[string("ne")] = ne_sf; 
    9086    } 
    9187 
     
    164160    static inline double le_ss(double x, double y)    { return x <= y; } 
    165161    static inline double ge_ss(double x, double y)    { return x >= y; } 
    166     static inline double ne_ss(double x, double y)    { return x != y; } 
    167162 
    168163    static inline CArray<double,1> neg_f(const CArray<double,1>& x)   { return Array<double,1>(-x); } 
     
    185180    static inline CArray<double,1> le_ff(const CArray<double,1>& x, const CArray<double,1>& y)    { return Array<double,1>(x <= y); } 
    186181    static inline CArray<double,1> ge_ff(const CArray<double,1>& x, const CArray<double,1>& y)    { return Array<double,1>(x >= y); } 
    187     static inline CArray<double,1> ne_ff(const CArray<double,1>& x, const CArray<double,1>& y)    { return Array<double,1>(x != y); } 
    188182 
    189183    static inline CArray<double,1> add_fs(const CArray<double,1>& x, double y)   { return Array<double,1>(x + y); } 
     
    197191    static inline CArray<double,1> le_fs(const CArray<double,1>& x, double y)    { return Array<double,1>(x <= y); } 
    198192    static inline CArray<double,1> ge_fs(const CArray<double,1>& x, double y)    { return Array<double,1>(x >= y); } 
    199     static inline CArray<double,1> ne_fs(const CArray<double,1>& x, double y)    { return Array<double,1>(x != y); } 
    200193 
    201194    static inline CArray<double,1> add_sf(double x, const CArray<double,1>& y)   { return Array<double,1>(x + y); } 
     
    208201    static inline CArray<double,1> le_sf(double x, const CArray<double,1>& y)    { return Array<double,1>(x <= y); } 
    209202    static inline CArray<double,1> ge_sf(double x, const CArray<double,1>& y)    { return Array<double,1>(x >= y); } 
    210     static inline CArray<double,1> ne_sf(double x, const CArray<double,1>& y)    { return Array<double,1>(x != y); } 
    211203  }; 
    212204 
  • XIOS/dev/branch_yushan/src/parse_expr/scalar_expr_node.cpp

    r1020 r1037  
    2323  double CScalarVarExprNode::reduce() const 
    2424  { 
    25     // $missing_value will be replaced with NaN 
    26     if (varId == "missing_value") 
    27     { 
    28       return std::numeric_limits<double>::quiet_NaN(); 
    29     } 
    30     else 
    31     { 
    32       if (!CVariable::has(varId))  
    33         ERROR("double CScalarVarExprNode::reduce() const", << "The variable " << varId << " does not exist."); 
     25    if (!CVariable::has(varId))  
     26      ERROR("double CScalarVarExprNode::reduce() const", << "The variable " << varId << " does not exist."); 
    3427 
    35       return CVariable::get(varId)->getData<double>(); 
    36     } 
     28    return CVariable::get(varId)->getData<double>(); 
    3729  } 
    3830 
  • XIOS/dev/branch_yushan/src/parse_expr/yacc_parser.cpp

    r1019 r1037  
    1 /* A Bison parser, made by GNU Bison 2.7.  */ 
     1/* A Bison parser, made by GNU Bison 3.0.2.  */ 
    22 
    33/* Bison implementation for Yacc-like parsers in C 
    4     
    5       Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. 
    6     
     4 
     5   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. 
     6 
    77   This program is free software: you can redistribute it and/or modify 
    88   it under the terms of the GNU General Public License as published by 
    99   the Free Software Foundation, either version 3 of the License, or 
    1010   (at your option) any later version. 
    11     
     11 
    1212   This program is distributed in the hope that it will be useful, 
    1313   but WITHOUT ANY WARRANTY; without even the implied warranty of 
    1414   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1515   GNU General Public License for more details. 
    16     
     16 
    1717   You should have received a copy of the GNU General Public License 
    1818   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */ 
     
    2727   Bison output files to be licensed under the GNU General Public 
    2828   License without this special exception. 
    29     
     29 
    3030   This special exception was added by the Free Software Foundation in 
    3131   version 2.2 of Bison.  */ 
     
    4545 
    4646/* Bison version.  */ 
    47 #define YYBISON_VERSION "2.7" 
     47#define YYBISON_VERSION "3.0.2" 
    4848 
    4949/* Skeleton name.  */ 
     
    6363 
    6464/* Copy the first part of user declarations.  */ 
    65 /* Line 371 of yacc.c  */ 
    66 #line 1 "yacc_parser.yacc" 
     65#line 1 "yacc_parser.yacc" /* yacc.c:339  */ 
    6766 
    6867#include "filter_expr_node.hpp" 
     
    9796  } 
    9897 
    99 /* Line 371 of yacc.c  */ 
    100 #line 101 "yacc_parser.cpp" 
    101  
    102 # ifndef YY_NULL 
     98#line 99 "yacc_parser.cpp" /* yacc.c:339  */ 
     99 
     100# ifndef YY_NULLPTR 
    103101#  if defined __cplusplus && 201103L <= __cplusplus 
    104 #   define YY_NULL nullptr 
     102#   define YY_NULLPTR nullptr 
    105103#  else 
    106 #   define YY_NULL 0 
     104#   define YY_NULLPTR 0 
    107105#  endif 
    108106# endif 
     
    120118#ifndef YY_YY_YACC_PARSER_HPP_INCLUDED 
    121119# define YY_YY_YACC_PARSER_HPP_INCLUDED 
    122 /* Enabling traces.  */ 
     120/* Debug traces.  */ 
    123121#ifndef YYDEBUG 
    124122# define YYDEBUG 0 
     
    128126#endif 
    129127 
    130 /* Tokens.  */ 
     128/* Token type.  */ 
    131129#ifndef YYTOKENTYPE 
    132130# define YYTOKENTYPE 
    133    /* Put the tokens into the symbol table, so that GDB and other debuggers 
    134       know about them.  */ 
    135    enum yytokentype { 
    136      NUMBER = 258, 
    137      VAR = 259, 
    138      ID = 260, 
    139      AVERAGE = 261, 
    140      PLUS = 262, 
    141      MINUS = 263, 
    142      TIMES = 264, 
    143      DIVIDE = 265, 
    144      POWER = 266, 
    145      EQ = 267, 
    146      LT = 268, 
    147      GT = 269, 
    148      LE = 270, 
    149      GE = 271, 
    150      NE = 272, 
    151      LEFT_PARENTHESIS = 273, 
    152      RIGHT_PARENTHESIS = 274, 
    153      END = 275, 
    154      NEG = 276 
    155    }; 
    156 #endif 
    157  
    158  
     131  enum yytokentype 
     132  { 
     133    NUMBER = 258, 
     134    VAR = 259, 
     135    ID = 260, 
     136    AVERAGE = 261, 
     137    PLUS = 262, 
     138    MINUS = 263, 
     139    TIMES = 264, 
     140    DIVIDE = 265, 
     141    POWER = 266, 
     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 
     151  }; 
     152#endif 
     153 
     154/* Value type.  */ 
    159155#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 
    160 typedef union YYSTYPE 
    161 { 
    162 /* Line 387 of yacc.c  */ 
    163 #line 35 "yacc_parser.yacc" 
     156typedef union YYSTYPE YYSTYPE; 
     157union YYSTYPE 
     158{ 
     159#line 35 "yacc_parser.yacc" /* yacc.c:355  */ 
    164160 
    165161  std::string* str;                /* symbol table index */ 
     
    167163  xios::IFilterExprNode* filterNode; 
    168164 
    169  
    170 /* Line 387 of yacc.c  */ 
    171 #line 172 "yacc_parser.cpp" 
    172 } YYSTYPE; 
     165#line 166 "yacc_parser.cpp" /* yacc.c:355  */ 
     166}; 
    173167# define YYSTYPE_IS_TRIVIAL 1 
    174 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 
    175168# define YYSTYPE_IS_DECLARED 1 
    176169#endif 
    177170 
     171 
    178172extern YYSTYPE yylval; 
    179173 
    180 #ifdef YYPARSE_PARAM 
    181 #if defined __STDC__ || defined __cplusplus 
    182 int yyparse (void *YYPARSE_PARAM); 
    183 #else 
    184 int yyparse (); 
    185 #endif 
    186 #else /* ! YYPARSE_PARAM */ 
    187 #if defined __STDC__ || defined __cplusplus 
    188174int yyparse (void); 
    189 #else 
    190 int yyparse (); 
    191 #endif 
    192 #endif /* ! YYPARSE_PARAM */ 
    193175 
    194176#endif /* !YY_YY_YACC_PARSER_HPP_INCLUDED  */ 
     
    196178/* Copy the second part of user declarations.  */ 
    197179 
    198 /* Line 390 of yacc.c  */ 
    199 #line 200 "yacc_parser.cpp" 
     180#line 181 "yacc_parser.cpp" /* yacc.c:358  */ 
    200181 
    201182#ifdef short 
     
    211192#ifdef YYTYPE_INT8 
    212193typedef YYTYPE_INT8 yytype_int8; 
    213 #elif (defined __STDC__ || defined __C99__FUNC__ \ 
    214      || defined __cplusplus || defined _MSC_VER) 
     194#else 
    215195typedef signed char yytype_int8; 
    216 #else 
    217 typedef short int yytype_int8; 
    218196#endif 
    219197 
     
    235213# elif defined size_t 
    236214#  define YYSIZE_T size_t 
    237 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 
    238      || defined __cplusplus || defined _MSC_VER) 
     215# elif ! defined YYSIZE_T 
    239216#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 
    240217#  define YYSIZE_T size_t 
     
    258235#endif 
    259236 
     237#ifndef YY_ATTRIBUTE 
     238# if (defined __GNUC__                                               \ 
     239      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \ 
     240     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C 
     241#  define YY_ATTRIBUTE(Spec) __attribute__(Spec) 
     242# else 
     243#  define YY_ATTRIBUTE(Spec) /* empty */ 
     244# endif 
     245#endif 
     246 
     247#ifndef YY_ATTRIBUTE_PURE 
     248# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__)) 
     249#endif 
     250 
     251#ifndef YY_ATTRIBUTE_UNUSED 
     252# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) 
     253#endif 
     254 
     255#if !defined _Noreturn \ 
     256     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) 
     257# if defined _MSC_VER && 1200 <= _MSC_VER 
     258#  define _Noreturn __declspec (noreturn) 
     259# else 
     260#  define _Noreturn YY_ATTRIBUTE ((__noreturn__)) 
     261# endif 
     262#endif 
     263 
    260264/* Suppress unused-variable warnings by "using" E.  */ 
    261265#if ! defined lint || defined __GNUC__ 
     
    265269#endif 
    266270 
    267 /* Identity function, used to suppress warnings about constant conditions.  */ 
    268 #ifndef lint 
    269 # define YYID(N) (N) 
     271#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 
     272/* Suppress an incorrect diagnostic about yylval being uninitialized.  */ 
     273# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 
     274    _Pragma ("GCC diagnostic push") \ 
     275    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 
     276    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 
     277# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 
     278    _Pragma ("GCC diagnostic pop") 
    270279#else 
    271 #if (defined __STDC__ || defined __C99__FUNC__ \ 
    272      || defined __cplusplus || defined _MSC_VER) 
    273 static int 
    274 YYID (int yyi) 
    275 #else 
    276 static int 
    277 YYID (yyi) 
    278     int yyi; 
    279 #endif 
    280 { 
    281   return yyi; 
    282 } 
    283 #endif 
     280# define YY_INITIAL_VALUE(Value) Value 
     281#endif 
     282#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 
     283# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 
     284# define YY_IGNORE_MAYBE_UNINITIALIZED_END 
     285#endif 
     286#ifndef YY_INITIAL_VALUE 
     287# define YY_INITIAL_VALUE(Value) /* Nothing. */ 
     288#endif 
     289 
    284290 
    285291#if ! defined yyoverflow || YYERROR_VERBOSE 
     
    300306#   else 
    301307#    define YYSTACK_ALLOC alloca 
    302 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 
    303      || defined __cplusplus || defined _MSC_VER) 
     308#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 
    304309#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 
    305310      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */ 
     
    313318 
    314319# ifdef YYSTACK_ALLOC 
    315    /* Pacify GCC's `empty if-body' warning.  */ 
    316 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) 
     320   /* Pacify GCC's 'empty if-body' warning.  */ 
     321#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 
    317322#  ifndef YYSTACK_ALLOC_MAXIMUM 
    318323    /* The OS might guarantee only one guard page at the bottom of the stack, 
     
    330335#  if (defined __cplusplus && ! defined EXIT_SUCCESS \ 
    331336       && ! ((defined YYMALLOC || defined malloc) \ 
    332              && (defined YYFREE || defined free))) 
     337             && (defined YYFREE || defined free))) 
    333338#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 
    334339#   ifndef EXIT_SUCCESS 
     
    338343#  ifndef YYMALLOC 
    339344#   define YYMALLOC malloc 
    340 #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 
    341      || defined __cplusplus || defined _MSC_VER) 
     345#   if ! defined malloc && ! defined EXIT_SUCCESS 
    342346void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 
    343347#   endif 
     
    345349#  ifndef YYFREE 
    346350#   define YYFREE free 
    347 #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 
    348      || defined __cplusplus || defined _MSC_VER) 
     351#   if ! defined free && ! defined EXIT_SUCCESS 
    349352void free (void *); /* INFRINGES ON USER NAME SPACE */ 
    350353#   endif 
     
    356359#if (! defined yyoverflow \ 
    357360     && (! defined __cplusplus \ 
    358         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 
     361        || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 
    359362 
    360363/* A type that is properly aligned for any stack member.  */ 
     
    381384   stack.  Advance YYPTR to a properly aligned location for the next 
    382385   stack.  */ 
    383 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \ 
    384     do                                                                  \ 
    385       {                                                                 \ 
    386         YYSIZE_T yynewbytes;                                            \ 
    387         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \ 
    388         Stack = &yyptr->Stack_alloc;                                    \ 
    389         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 
    390         yyptr += yynewbytes / sizeof (*yyptr);                          \ 
    391       }                                                                 \ 
    392     while (YYID (0)) 
     386# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \ 
     387    do                                                                  \ 
     388      {                                                                 \ 
     389        YYSIZE_T yynewbytes;                                            \ 
     390        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \ 
     391        Stack = &yyptr->Stack_alloc;                                    \ 
     392        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 
     393        yyptr += yynewbytes / sizeof (*yyptr);                          \ 
     394      }                                                                 \ 
     395    while (0) 
    393396 
    394397#endif 
     
    409412            (Dst)[yyi] = (Src)[yyi];            \ 
    410413        }                                       \ 
    411       while (YYID (0)) 
     414      while (0) 
    412415#  endif 
    413416# endif 
     
    417420#define YYFINAL  16 
    418421/* YYLAST -- Last index in YYTABLE.  */ 
    419 #define YYLAST   229 
     422#define YYLAST   204 
    420423 
    421424/* YYNTOKENS -- Number of terminals.  */ 
    422 #define YYNTOKENS  22 
     425#define YYNTOKENS  21 
    423426/* YYNNTS -- Number of nonterminals.  */ 
    424427#define YYNNTS  4 
    425428/* YYNRULES -- Number of rules.  */ 
    426 #define YYNRULES  56 
    427 /* YYNRULES -- Number of states.  */ 
    428 #define YYNSTATES  116 
    429  
    430 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */ 
     429#define YYNRULES  52 
     430/* YYNSTATES -- Number of states.  */ 
     431#define YYNSTATES  108 
     432 
     433/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned 
     434   by yylex, with out-of-bounds checking.  */ 
    431435#define YYUNDEFTOK  2 
    432 #define YYMAXUTOK   276 
    433  
    434 #define YYTRANSLATE(YYX)                                                \ 
     436#define YYMAXUTOK   275 
     437 
     438#define YYTRANSLATE(YYX)                                                \ 
    435439  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 
    436440 
    437 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */ 
     441/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 
     442   as returned by yylex, without out-of-bounds checking.  */ 
    438443static const yytype_uint8 yytranslate[] = 
    439444{ 
     
    465470       2,     2,     2,     2,     2,     2,     1,     2,     3,     4, 
    466471       5,     6,     7,     8,     9,    10,    11,    12,    13,    14, 
    467       15,    16,    17,    18,    19,    20,    21 
     472      15,    16,    17,    18,    19,    20 
    468473}; 
    469474 
    470475#if YYDEBUG 
    471 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 
    472    YYRHS.  */ 
    473 static const yytype_uint8 yyprhs[] = 
    474 { 
    475        0,     0,     3,     5,     8,    10,    12,    16,    20,    24, 
    476       28,    31,    35,    39,    43,    47,    51,    55,    59,    63, 
    477       68,    70,    72,    76,    80,    84,    88,    91,    95,    99, 
    478      103,   107,   111,   115,   119,   123,   127,   131,   135,   139, 
    479      143,   147,   151,   155,   159,   163,   167,   171,   175,   179, 
    480      183,   187,   191,   195,   199,   203,   207 
    481 }; 
    482  
    483 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */ 
    484 static const yytype_int8 yyrhs[] = 
    485 { 
    486       23,     0,    -1,    20,    -1,    25,    20,    -1,     3,    -1, 
    487        4,    -1,    24,     7,    24,    -1,    24,     8,    24,    -1, 
    488       24,     9,    24,    -1,    24,    10,    24,    -1,     8,    24, 
    489       -1,    24,    11,    24,    -1,    24,    12,    24,    -1,    24, 
    490       13,    24,    -1,    24,    14,    24,    -1,    24,    15,    24, 
    491       -1,    24,    16,    24,    -1,    24,    17,    24,    -1,    18, 
    492       24,    19,    -1,     5,    18,    24,    19,    -1,     5,    -1, 
    493        6,    -1,    25,     7,    25,    -1,    25,     8,    25,    -1, 
    494       25,     9,    25,    -1,    25,    10,    25,    -1,     8,    25, 
    495       -1,    25,    11,    25,    -1,    25,    12,    25,    -1,    25, 
    496       13,    25,    -1,    25,    14,    25,    -1,    25,    15,    25, 
    497       -1,    25,    16,    25,    -1,    25,    17,    25,    -1,    18, 
    498       25,    19,    -1,    25,     7,    24,    -1,    24,     7,    25, 
    499       -1,    25,     8,    24,    -1,    24,     8,    25,    -1,    25, 
    500        9,    24,    -1,    24,     9,    25,    -1,    25,    10,    24, 
    501       -1,    24,    10,    25,    -1,    25,    11,    24,    -1,    25, 
    502       12,    24,    -1,    24,    12,    25,    -1,    25,    13,    24, 
    503       -1,    24,    13,    25,    -1,    25,    14,    24,    -1,    24, 
    504       14,    25,    -1,    25,    15,    24,    -1,    24,    15,    25, 
    505       -1,    25,    16,    24,    -1,    24,    16,    25,    -1,    25, 
    506       17,    24,    -1,    24,    17,    25,    -1,     5,    18,    25, 
    507       19,    -1 
    508 }; 
    509  
    510 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */ 
     476  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */ 
    511477static const yytype_uint8 yyrline[] = 
    512478{ 
    513479       0,    61,    61,    62,    66,    67,    68,    69,    70,    71, 
    514       72,    73,    74,    75,    76,    77,    78,    79,    80,    81, 
     480      72,    73,    74,    75,    76,    77,    78,    79,    80,    84, 
    515481      85,    86,    87,    88,    89,    90,    91,    92,    93,    94, 
    516482      95,    96,    97,    98,    99,   100,   101,   102,   103,   104, 
    517483     105,   106,   107,   108,   109,   110,   111,   112,   113,   114, 
    518      115,   116,   117,   118,   119,   120,   121 
     484     115,   116,   117 
    519485}; 
    520486#endif 
     
    526492{ 
    527493  "$end", "error", "$undefined", "NUMBER", "VAR", "ID", "AVERAGE", "PLUS", 
    528   "MINUS", "TIMES", "DIVIDE", "POWER", "EQ", "LT", "GT", "LE", "GE", "NE", 
     494  "MINUS", "TIMES", "DIVIDE", "POWER", "EQ", "LT", "GT", "LE", "GE", 
    529495  "LEFT_PARENTHESIS", "RIGHT_PARENTHESIS", "END", "NEG", "$accept", "Line", 
    530   "Expression", "Field_expr", YY_NULL 
     496  "Expression", "Field_expr", YY_NULLPTR 
    531497}; 
    532498#endif 
    533499 
    534500# ifdef YYPRINT 
    535 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to 
    536    token YYLEX-NUM.  */ 
     501/* YYTOKNUM[NUM] -- (External) token number corresponding to the 
     502   (internal) symbol number NUM (which must be that of a token).  */ 
    537503static const yytype_uint16 yytoknum[] = 
    538504{ 
    539505       0,   256,   257,   258,   259,   260,   261,   262,   263,   264, 
    540506     265,   266,   267,   268,   269,   270,   271,   272,   273,   274, 
    541      275,   276 
     507     275 
    542508}; 
    543509# endif 
    544510 
    545 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */ 
     511#define YYPACT_NINF -13 
     512 
     513#define yypact_value_is_default(Yystate) \ 
     514  (!!((Yystate) == (-13))) 
     515 
     516#define YYTABLE_NINF -1 
     517 
     518#define yytable_value_is_error(Yytable_value) \ 
     519  0 
     520 
     521  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 
     522     STATE-NUM.  */ 
     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 
     536}; 
     537 
     538  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 
     539     Performed when YYTABLE does not specify something else to do.  Zero 
     540     means the default is an error.  */ 
     541static const yytype_uint8 yydefact[] = 
     542{ 
     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, 
     546       0,     0,     0,     0,     0,     0,     0,     3,     0,     0, 
     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 
     554}; 
     555 
     556  /* YYPGOTO[NTERM-NUM].  */ 
     557static const yytype_int8 yypgoto[] = 
     558{ 
     559     -13,   -13,    -5,    31 
     560}; 
     561 
     562  /* YYDEFGOTO[NTERM-NUM].  */ 
     563static const yytype_int8 yydefgoto[] = 
     564{ 
     565      -1,     8,     9,    10 
     566}; 
     567 
     568  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If 
     569     positive, shift that token.  If negative, reduce the rule whose 
     570     number is the opposite.  If YYTABLE_NINF, syntax error.  */ 
     571static const yytype_uint8 yytable[] = 
     572{ 
     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 
     594}; 
     595 
     596static const yytype_int8 yycheck[] = 
     597{ 
     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 
     619}; 
     620 
     621  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 
     622     symbol of state STATE-NUM.  */ 
     623static const yytype_uint8 yystos[] = 
     624{ 
     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 
     636}; 
     637 
     638  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */ 
    546639static const yytype_uint8 yyr1[] = 
    547640{ 
    548        0,    22,    23,    23,    24,    24,    24,    24,    24,    24, 
     641       0,    21,    22,    22,    23,    23,    23,    23,    23,    23, 
     642      23,    23,    23,    23,    23,    23,    23,    23,    23,    24, 
    549643      24,    24,    24,    24,    24,    24,    24,    24,    24,    24, 
    550       25,    25,    25,    25,    25,    25,    25,    25,    25,    25, 
    551       25,    25,    25,    25,    25,    25,    25,    25,    25,    25, 
    552       25,    25,    25,    25,    25,    25,    25,    25,    25,    25, 
    553       25,    25,    25,    25,    25,    25,    25 
     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 
    554647}; 
    555648 
    556 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */ 
     649  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */ 
    557650static const yytype_uint8 yyr2[] = 
    558651{ 
    559652       0,     2,     1,     2,     1,     1,     3,     3,     3,     3, 
    560        2,     3,     3,     3,     3,     3,     3,     3,     3,     4, 
    561        1,     1,     3,     3,     3,     3,     2,     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, 
    562655       3,     3,     3,     3,     3,     3,     3,     3,     3,     3, 
    563656       3,     3,     3,     3,     3,     3,     3,     3,     3,     3, 
    564        3,     3,     3,     3,     3,     3,     4 
     657       3,     3,     4 
    565658}; 
    566659 
    567 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. 
    568    Performed when YYTABLE doesn't specify something else to do.  Zero 
    569    means the default is an error.  */ 
    570 static const yytype_uint8 yydefact[] = 
    571 { 
    572        0,     4,     5,    20,    21,     0,     0,     2,     0,     0, 
    573        0,     0,    10,    26,     0,     0,     1,     0,     0,     0, 
    574        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    575        0,     0,     0,     0,     0,     0,     0,     0,     0,     3, 
    576        0,     0,    18,    34,     6,    36,     7,    38,     8,    40, 
    577        9,    42,     0,     0,     0,    11,    12,    45,    13,    47, 
    578       14,    49,    15,    51,    16,    53,    17,    55,    35,    22, 
    579       37,    23,    39,    24,    41,    25,    43,    27,    44,    28, 
    580       46,    29,    48,    30,    50,    31,    52,    32,    54,    33, 
    581       19,    56,     0,    10,     0,     0,     0,     0,     0,     0, 
    582        0,     0,     0,     0,     0,     0,     6,     7,     8,     9, 
    583       12,    13,    14,    15,    16,    17 
    584 }; 
    585  
    586 /* YYDEFGOTO[NTERM-NUM].  */ 
    587 static const yytype_int8 yydefgoto[] = 
    588 { 
    589       -1,     8,     9,    10 
    590 }; 
    591  
    592 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 
    593    STATE-NUM.  */ 
    594 #define YYPACT_NINF -14 
    595 static const yytype_int16 yypact[] = 
    596 { 
    597       97,   -14,   -14,   -13,   -14,    70,    70,   -14,    37,   207, 
    598      115,    70,    32,    34,   129,   142,   -14,    70,    70,    70, 
    599       70,   103,    70,    70,    70,    70,    70,    70,    70,    70, 
    600       70,    70,    70,    70,    70,    70,    70,    70,    70,   -14, 
    601      155,   168,   -14,   -14,    -7,    25,    -7,    25,    32,    34, 
    602       32,    34,    28,   103,   103,    32,     0,    72,     0,    72, 
    603        0,    72,     0,    72,     0,    72,     0,    72,    -7,    25, 
    604       -7,    25,    32,    34,    32,    34,    32,    34,     0,    72, 
    605        0,    72,     0,    72,     0,    72,     0,    72,     0,    72, 
    606      -14,   -14,   103,    32,   181,   103,   103,   103,   103,   103, 
    607      103,   103,   103,   103,   103,   194,    31,    31,    32,    32, 
    608      218,   218,   218,   218,   218,   218 
    609 }; 
    610  
    611 /* YYPGOTO[NTERM-NUM].  */ 
    612 static const yytype_int8 yypgoto[] = 
    613 { 
    614      -14,   -14,    -5,    33 
    615 }; 
    616  
    617 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If 
    618    positive, shift that token.  If negative, reduce the rule which 
    619    number is the opposite.  If YYTABLE_NINF, syntax error.  */ 
    620 #define YYTABLE_NINF -1 
    621 static const yytype_uint8 yytable[] = 
    622 { 
    623       12,    14,    19,    20,    21,    11,    40,    17,    18,    19, 
    624       20,    21,    44,    46,    48,    50,    55,    56,    58,    60, 
    625       62,    64,    66,    68,    70,    72,    74,    76,    78,    80, 
    626       82,    84,    86,    88,    30,    31,    32,    16,    13,    15, 
    627       97,    98,    21,    21,    41,    32,    92,     0,    93,    94, 
    628       45,    47,    49,    51,     0,    57,    59,    61,    63,    65, 
    629       67,    69,    71,    73,    75,    77,    79,    81,    83,    85, 
    630       87,    89,     0,     1,     2,     3,     4,     0,     5,    28, 
    631       29,    30,    31,    32,     0,     0,     0,   105,     6,     0, 
    632      106,   107,   108,   109,   110,   111,   112,   113,   114,   115, 
    633        1,     2,     3,     4,     0,     5,     1,     2,    52,     0, 
    634        0,    53,     0,     0,     0,     6,     0,     7,     0,     0, 
    635        0,    54,    28,    29,    30,    31,    32,    33,    34,    35, 
    636       36,    37,    38,     0,     0,    39,    17,    18,    19,    20, 
    637       21,    22,    23,    24,    25,    26,    27,     0,    42,    28, 
    638       29,    30,    31,    32,    33,    34,    35,    36,    37,    38, 
    639        0,    43,    17,    18,    19,    20,    21,    22,    23,    24, 
    640       25,    26,    27,     0,    90,    28,    29,    30,    31,    32, 
    641       33,    34,    35,    36,    37,    38,     0,    91,    95,    96, 
    642       97,    98,    21,    99,   100,   101,   102,   103,   104,     0, 
    643       42,    95,    96,    97,    98,    21,    99,   100,   101,   102, 
    644      103,   104,     0,    90,    17,    18,    19,    20,    21,    22, 
    645       23,    24,    25,    26,    27,    95,    96,    97,    98,    21 
    646 }; 
    647  
    648 #define yypact_value_is_default(Yystate) \ 
    649   (!!((Yystate) == (-14))) 
    650  
    651 #define yytable_value_is_error(Yytable_value) \ 
    652   YYID (0) 
    653  
    654 static const yytype_int8 yycheck[] = 
    655 { 
    656        5,     6,     9,    10,    11,    18,    11,     7,     8,     9, 
    657       10,    11,    17,    18,    19,    20,    21,    22,    23,    24, 
    658       25,    26,    27,    28,    29,    30,    31,    32,    33,    34, 
    659       35,    36,    37,    38,     9,    10,    11,     0,     5,     6, 
    660        9,    10,    11,    11,    11,    11,    18,    -1,    53,    54, 
    661       17,    18,    19,    20,    -1,    22,    23,    24,    25,    26, 
    662       27,    28,    29,    30,    31,    32,    33,    34,    35,    36, 
    663       37,    38,    -1,     3,     4,     5,     6,    -1,     8,     7, 
    664        8,     9,    10,    11,    -1,    -1,    -1,    92,    18,    -1, 
    665       95,    96,    97,    98,    99,   100,   101,   102,   103,   104, 
    666        3,     4,     5,     6,    -1,     8,     3,     4,     5,    -1, 
    667       -1,     8,    -1,    -1,    -1,    18,    -1,    20,    -1,    -1, 
    668       -1,    18,     7,     8,     9,    10,    11,    12,    13,    14, 
    669       15,    16,    17,    -1,    -1,    20,     7,     8,     9,    10, 
    670       11,    12,    13,    14,    15,    16,    17,    -1,    19,     7, 
    671        8,     9,    10,    11,    12,    13,    14,    15,    16,    17, 
    672       -1,    19,     7,     8,     9,    10,    11,    12,    13,    14, 
    673       15,    16,    17,    -1,    19,     7,     8,     9,    10,    11, 
    674       12,    13,    14,    15,    16,    17,    -1,    19,     7,     8, 
    675        9,    10,    11,    12,    13,    14,    15,    16,    17,    -1, 
    676       19,     7,     8,     9,    10,    11,    12,    13,    14,    15, 
    677       16,    17,    -1,    19,     7,     8,     9,    10,    11,    12, 
    678       13,    14,    15,    16,    17,     7,     8,     9,    10,    11 
    679 }; 
    680  
    681 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 
    682    symbol of state STATE-NUM.  */ 
    683 static const yytype_uint8 yystos[] = 
    684 { 
    685        0,     3,     4,     5,     6,     8,    18,    20,    23,    24, 
    686       25,    18,    24,    25,    24,    25,     0,     7,     8,     9, 
    687       10,    11,    12,    13,    14,    15,    16,    17,     7,     8, 
    688        9,    10,    11,    12,    13,    14,    15,    16,    17,    20, 
    689       24,    25,    19,    19,    24,    25,    24,    25,    24,    25, 
    690       24,    25,     5,     8,    18,    24,    24,    25,    24,    25, 
    691       24,    25,    24,    25,    24,    25,    24,    25,    24,    25, 
    692       24,    25,    24,    25,    24,    25,    24,    25,    24,    25, 
    693       24,    25,    24,    25,    24,    25,    24,    25,    24,    25, 
    694       19,    19,    18,    24,    24,     7,     8,     9,    10,    12, 
    695       13,    14,    15,    16,    17,    24,    24,    24,    24,    24, 
    696       24,    24,    24,    24,    24,    24 
    697 }; 
    698  
    699 #define yyerrok         (yyerrstatus = 0) 
    700 #define yyclearin       (yychar = YYEMPTY) 
    701 #define YYEMPTY         (-2) 
    702 #define YYEOF           0 
    703  
    704 #define YYACCEPT        goto yyacceptlab 
    705 #define YYABORT         goto yyabortlab 
    706 #define YYERROR         goto yyerrorlab 
    707  
    708  
    709 /* Like YYERROR except do call yyerror.  This remains here temporarily 
    710    to ease the transition to the new meaning of YYERROR, for GCC. 
    711    Once GCC version 2 has supplanted version 1, this can go.  However, 
    712    YYFAIL appears to be in use.  Nevertheless, it is formally deprecated 
    713    in Bison 2.4.2's NEWS entry, where a plan to phase it out is 
    714    discussed.  */ 
    715  
    716 #define YYFAIL          goto yyerrlab 
    717 #if defined YYFAIL 
    718   /* This is here to suppress warnings from the GCC cpp's 
    719      -Wunused-macros.  Normally we don't worry about that warning, but 
    720      some users do, and we want to make it easy for users to remove 
    721      YYFAIL uses, which will produce warnings from Bison 2.5.  */ 
    722 #endif 
     660 
     661#define yyerrok         (yyerrstatus = 0) 
     662#define yyclearin       (yychar = YYEMPTY) 
     663#define YYEMPTY         (-2) 
     664#define YYEOF           0 
     665 
     666#define YYACCEPT        goto yyacceptlab 
     667#define YYABORT         goto yyabortlab 
     668#define YYERROR         goto yyerrorlab 
     669 
    723670 
    724671#define YYRECOVERING()  (!!yyerrstatus) 
     
    737684    {                                                           \ 
    738685      yyerror (YY_("syntax error: cannot back up")); \ 
    739       YYERROR;                                                  \ 
    740     }                                                           \ 
    741 while (YYID (0)) 
     686      YYERROR;                                                  \ 
     687    }                                                           \ 
     688while (0) 
    742689 
    743690/* Error token number */ 
    744 #define YYTERROR        1 
    745 #define YYERRCODE       256 
    746  
    747  
    748 /* This macro is provided for backward compatibility. */ 
    749 #ifndef YY_LOCATION_PRINT 
    750 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 
    751 #endif 
    752  
    753  
    754 /* YYLEX -- calling `yylex' with the right arguments.  */ 
    755 #ifdef YYLEX_PARAM 
    756 # define YYLEX yylex (YYLEX_PARAM) 
    757 #else 
    758 # define YYLEX yylex () 
    759 #endif 
     691#define YYTERROR        1 
     692#define YYERRCODE       256 
     693 
     694 
    760695 
    761696/* Enable debugging if requested.  */ 
     
    767702# endif 
    768703 
    769 # define YYDPRINTF(Args)                        \ 
    770 do {                                            \ 
    771   if (yydebug)                                  \ 
    772     YYFPRINTF Args;                             \ 
    773 } while (YYID (0)) 
    774  
    775 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \ 
    776 do {                                                                      \ 
    777   if (yydebug)                                                            \ 
    778     {                                                                     \ 
    779       YYFPRINTF (stderr, "%s ", Title);                                   \ 
    780       yy_symbol_print (stderr,                                            \ 
    781                   Type, Value); \ 
    782       YYFPRINTF (stderr, "\n");                                           \ 
    783     }                                                                     \ 
    784 } while (YYID (0)) 
    785  
    786  
    787 /*--------------------------------. 
    788 | Print this symbol on YYOUTPUT.  | 
    789 `--------------------------------*/ 
    790  
    791 /*ARGSUSED*/ 
    792 #if (defined __STDC__ || defined __C99__FUNC__ \ 
    793      || defined __cplusplus || defined _MSC_VER) 
     704# define YYDPRINTF(Args)                        \ 
     705do {                                            \ 
     706  if (yydebug)                                  \ 
     707    YYFPRINTF Args;                             \ 
     708} while (0) 
     709 
     710/* This macro is provided for backward compatibility. */ 
     711#ifndef YY_LOCATION_PRINT 
     712# define YY_LOCATION_PRINT(File, Loc) ((void) 0) 
     713#endif 
     714 
     715 
     716# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \ 
     717do {                                                                      \ 
     718  if (yydebug)                                                            \ 
     719    {                                                                     \ 
     720      YYFPRINTF (stderr, "%s ", Title);                                   \ 
     721      yy_symbol_print (stderr,                                            \ 
     722                  Type, Value); \ 
     723      YYFPRINTF (stderr, "\n");                                           \ 
     724    }                                                                     \ 
     725} while (0) 
     726 
     727 
     728/*----------------------------------------. 
     729| Print this symbol's value on YYOUTPUT.  | 
     730`----------------------------------------*/ 
     731 
    794732static void 
    795733yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 
    796 #else 
    797 static void 
    798 yy_symbol_value_print (yyoutput, yytype, yyvaluep) 
    799     FILE *yyoutput; 
    800     int yytype; 
    801     YYSTYPE const * const yyvaluep; 
    802 #endif 
    803734{ 
    804735  FILE *yyo = yyoutput; 
     
    809740  if (yytype < YYNTOKENS) 
    810741    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 
    811 # else 
    812   YYUSE (yyoutput); 
    813742# endif 
    814   switch (yytype) 
    815     { 
    816       default: 
    817         break; 
    818     } 
     743  YYUSE (yytype); 
    819744} 
    820745 
     
    824749`--------------------------------*/ 
    825750 
    826 #if (defined __STDC__ || defined __C99__FUNC__ \ 
    827      || defined __cplusplus || defined _MSC_VER) 
    828751static void 
    829752yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 
    830 #else 
    831 static void 
    832 yy_symbol_print (yyoutput, yytype, yyvaluep) 
    833     FILE *yyoutput; 
    834     int yytype; 
    835     YYSTYPE const * const yyvaluep; 
    836 #endif 
    837 { 
    838   if (yytype < YYNTOKENS) 
    839     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 
    840   else 
    841     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 
     753{ 
     754  YYFPRINTF (yyoutput, "%s %s (", 
     755             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 
    842756 
    843757  yy_symbol_value_print (yyoutput, yytype, yyvaluep); 
     
    850764`------------------------------------------------------------------*/ 
    851765 
    852 #if (defined __STDC__ || defined __C99__FUNC__ \ 
    853      || defined __cplusplus || defined _MSC_VER) 
    854766static void 
    855767yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 
    856 #else 
    857 static void 
    858 yy_stack_print (yybottom, yytop) 
    859     yytype_int16 *yybottom; 
    860     yytype_int16 *yytop; 
    861 #endif 
    862768{ 
    863769  YYFPRINTF (stderr, "Stack now"); 
     
    870776} 
    871777 
    872 # define YY_STACK_PRINT(Bottom, Top)                            \ 
    873 do {                                                            \ 
    874   if (yydebug)                                                  \ 
    875     yy_stack_print ((Bottom), (Top));                           \ 
    876 } while (YYID (0)) 
     778# define YY_STACK_PRINT(Bottom, Top)                            \ 
     779do {                                                            \ 
     780  if (yydebug)                                                  \ 
     781    yy_stack_print ((Bottom), (Top));                           \ 
     782} while (0) 
    877783 
    878784 
     
    881787`------------------------------------------------*/ 
    882788 
    883 #if (defined __STDC__ || defined __C99__FUNC__ \ 
    884      || defined __cplusplus || defined _MSC_VER) 
    885789static void 
    886 yy_reduce_print (YYSTYPE *yyvsp, int yyrule) 
    887 #else 
    888 static void 
    889 yy_reduce_print (yyvsp, yyrule) 
    890     YYSTYPE *yyvsp; 
    891     int yyrule; 
    892 #endif 
    893 { 
     790yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) 
     791{ 
     792  unsigned long int yylno = yyrline[yyrule]; 
    894793  int yynrhs = yyr2[yyrule]; 
    895794  int yyi; 
    896   unsigned long int yylno = yyrline[yyrule]; 
    897795  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 
    898              yyrule - 1, yylno); 
     796             yyrule - 1, yylno); 
    899797  /* The symbols being reduced.  */ 
    900798  for (yyi = 0; yyi < yynrhs; yyi++) 
    901799    { 
    902800      YYFPRINTF (stderr, "   $%d = ", yyi + 1); 
    903       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], 
    904                        &(yyvsp[(yyi + 1) - (yynrhs)]) 
    905                                        ); 
     801      yy_symbol_print (stderr, 
     802                       yystos[yyssp[yyi + 1 - yynrhs]], 
     803                       &(yyvsp[(yyi + 1) - (yynrhs)]) 
     804                                              ); 
    906805      YYFPRINTF (stderr, "\n"); 
    907806    } 
    908807} 
    909808 
    910 # define YY_REDUCE_PRINT(Rule)          \ 
    911 do {                                    \ 
    912   if (yydebug)                          \ 
    913     yy_reduce_print (yyvsp, Rule); \ 
    914 } while (YYID (0)) 
     809# define YY_REDUCE_PRINT(Rule)          \ 
     810do {                                    \ 
     811  if (yydebug)                          \ 
     812    yy_reduce_print (yyssp, yyvsp, Rule); \ 
     813} while (0) 
    915814 
    916815/* Nonzero means print parse trace.  It is left uninitialized so that 
     
    926825 
    927826/* YYINITDEPTH -- initial size of the parser's stacks.  */ 
    928 #ifndef YYINITDEPTH 
     827#ifndef YYINITDEPTH 
    929828# define YYINITDEPTH 200 
    930829#endif 
     
    949848#  else 
    950849/* Return the length of YYSTR.  */ 
    951 #if (defined __STDC__ || defined __C99__FUNC__ \ 
    952      || defined __cplusplus || defined _MSC_VER) 
    953850static YYSIZE_T 
    954851yystrlen (const char *yystr) 
    955 #else 
    956 static YYSIZE_T 
    957 yystrlen (yystr) 
    958     const char *yystr; 
    959 #endif 
    960852{ 
    961853  YYSIZE_T yylen; 
     
    973865/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 
    974866   YYDEST.  */ 
    975 #if (defined __STDC__ || defined __C99__FUNC__ \ 
    976      || defined __cplusplus || defined _MSC_VER) 
    977867static char * 
    978868yystpcpy (char *yydest, const char *yysrc) 
    979 #else 
    980 static char * 
    981 yystpcpy (yydest, yysrc) 
    982     char *yydest; 
    983     const char *yysrc; 
    984 #endif 
    985869{ 
    986870  char *yyd = yydest; 
     
    1012896 
    1013897      for (;;) 
    1014         switch (*++yyp) 
    1015           { 
    1016           case '\'': 
    1017           case ',': 
    1018             goto do_not_strip_quotes; 
    1019  
    1020           case '\\': 
    1021             if (*++yyp != '\\') 
    1022               goto do_not_strip_quotes; 
    1023             /* Fall through.  */ 
    1024           default: 
    1025             if (yyres) 
    1026               yyres[yyn] = *yyp; 
    1027             yyn++; 
    1028             break; 
    1029  
    1030           case '"': 
    1031             if (yyres) 
    1032               yyres[yyn] = '\0'; 
    1033             return yyn; 
    1034           } 
     898        switch (*++yyp) 
     899          { 
     900          case '\'': 
     901          case ',': 
     902            goto do_not_strip_quotes; 
     903 
     904          case '\\': 
     905            if (*++yyp != '\\') 
     906              goto do_not_strip_quotes; 
     907            /* Fall through.  */ 
     908          default: 
     909            if (yyres) 
     910              yyres[yyn] = *yyp; 
     911            yyn++; 
     912            break; 
     913 
     914          case '"': 
     915            if (yyres) 
     916              yyres[yyn] = '\0'; 
     917            return yyn; 
     918          } 
    1035919    do_not_strip_quotes: ; 
    1036920    } 
     
    1055939                yytype_int16 *yyssp, int yytoken) 
    1056940{ 
    1057   YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); 
     941  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); 
    1058942  YYSIZE_T yysize = yysize0; 
    1059943  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 
    1060944  /* Internationalized format string. */ 
    1061   const char *yyformat = YY_NULL; 
     945  const char *yyformat = YY_NULLPTR; 
    1062946  /* Arguments of yyformat. */ 
    1063947  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 
     
    1067951 
    1068952  /* There are many possibilities here to consider: 
    1069      - Assume YYFAIL is not used.  It's too flawed to consider.  See 
    1070        <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html> 
    1071        for details.  YYERROR is fine as it does not invoke this 
    1072        function. 
    1073953     - If this state is a consistent state with a default action, then 
    1074954       the only way this function was invoked is if the default action 
     
    11201000                yyarg[yycount++] = yytname[yyx]; 
    11211001                { 
    1122                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); 
     1002                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 
    11231003                  if (! (yysize <= yysize1 
    11241004                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 
     
    11871067`-----------------------------------------------*/ 
    11881068 
    1189 /*ARGSUSED*/ 
    1190 #if (defined __STDC__ || defined __C99__FUNC__ \ 
    1191      || defined __cplusplus || defined _MSC_VER) 
    11921069static void 
    11931070yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 
    1194 #else 
    1195 static void 
    1196 yydestruct (yymsg, yytype, yyvaluep) 
    1197     const char *yymsg; 
    1198     int yytype; 
    1199     YYSTYPE *yyvaluep; 
    1200 #endif 
    12011071{ 
    12021072  YYUSE (yyvaluep); 
    1203  
    12041073  if (!yymsg) 
    12051074    yymsg = "Deleting"; 
    12061075  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 
    12071076 
    1208   switch (yytype) 
    1209     { 
    1210  
    1211       default: 
    1212         break; 
    1213     } 
     1077  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 
     1078  YYUSE (yytype); 
     1079  YY_IGNORE_MAYBE_UNINITIALIZED_END 
    12141080} 
    12151081 
     
    12201086int yychar; 
    12211087 
    1222  
    1223 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 
    1224 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 
    1225 # define YY_IGNORE_MAYBE_UNINITIALIZED_END 
    1226 #endif 
    1227 #ifndef YY_INITIAL_VALUE 
    1228 # define YY_INITIAL_VALUE(Value) /* Nothing. */ 
    1229 #endif 
    1230  
    12311088/* The semantic value of the lookahead symbol.  */ 
    1232 YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); 
    1233  
     1089YYSTYPE yylval; 
    12341090/* Number of syntax errors so far.  */ 
    12351091int yynerrs; 
     
    12401096`----------*/ 
    12411097 
    1242 #ifdef YYPARSE_PARAM 
    1243 #if (defined __STDC__ || defined __C99__FUNC__ \ 
    1244      || defined __cplusplus || defined _MSC_VER) 
    1245 int 
    1246 yyparse (void *YYPARSE_PARAM) 
    1247 #else 
    1248 int 
    1249 yyparse (YYPARSE_PARAM) 
    1250     void *YYPARSE_PARAM; 
    1251 #endif 
    1252 #else /* ! YYPARSE_PARAM */ 
    1253 #if (defined __STDC__ || defined __C99__FUNC__ \ 
    1254      || defined __cplusplus || defined _MSC_VER) 
    12551098int 
    12561099yyparse (void) 
    1257 #else 
    1258 int 
    1259 yyparse () 
    1260  
    1261 #endif 
    1262 #endif 
    12631100{ 
    12641101    int yystate; 
     
    12671104 
    12681105    /* The stacks and their tools: 
    1269        `yyss': related to states. 
    1270        `yyvs': related to semantic values. 
     1106       'yyss': related to states. 
     1107       'yyvs': related to semantic values. 
    12711108 
    12721109       Refer to the stacks through separate pointers, to allow yyoverflow 
     
    13361173#ifdef yyoverflow 
    13371174      { 
    1338         /* Give user a chance to reallocate the stack.  Use copies of 
    1339            these so that the &'s don't force the real ones into 
    1340            memory.  */ 
    1341         YYSTYPE *yyvs1 = yyvs; 
    1342         yytype_int16 *yyss1 = yyss; 
    1343  
    1344         /* Each stack pointer address is followed by the size of the 
    1345            data in use in that stack, in bytes.  This used to be a 
    1346            conditional around just the two extra args, but that might 
    1347            be undefined if yyoverflow is a macro.  */ 
    1348         yyoverflow (YY_("memory exhausted"), 
    1349                     &yyss1, yysize * sizeof (*yyssp), 
    1350                     &yyvs1, yysize * sizeof (*yyvsp), 
    1351                     &yystacksize); 
    1352  
    1353         yyss = yyss1; 
    1354         yyvs = yyvs1; 
     1175        /* Give user a chance to reallocate the stack.  Use copies of 
     1176           these so that the &'s don't force the real ones into 
     1177           memory.  */ 
     1178        YYSTYPE *yyvs1 = yyvs; 
     1179        yytype_int16 *yyss1 = yyss; 
     1180 
     1181        /* Each stack pointer address is followed by the size of the 
     1182           data in use in that stack, in bytes.  This used to be a 
     1183           conditional around just the two extra args, but that might 
     1184           be undefined if yyoverflow is a macro.  */ 
     1185        yyoverflow (YY_("memory exhausted"), 
     1186                    &yyss1, yysize * sizeof (*yyssp), 
     1187                    &yyvs1, yysize * sizeof (*yyvsp), 
     1188                    &yystacksize); 
     1189 
     1190        yyss = yyss1; 
     1191        yyvs = yyvs1; 
    13551192      } 
    13561193#else /* no yyoverflow */ 
     
    13601197      /* Extend the stack our own way.  */ 
    13611198      if (YYMAXDEPTH <= yystacksize) 
    1362         goto yyexhaustedlab; 
     1199        goto yyexhaustedlab; 
    13631200      yystacksize *= 2; 
    13641201      if (YYMAXDEPTH < yystacksize) 
    1365         yystacksize = YYMAXDEPTH; 
     1202        yystacksize = YYMAXDEPTH; 
    13661203 
    13671204      { 
    1368         yytype_int16 *yyss1 = yyss; 
    1369         union yyalloc *yyptr = 
    1370           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 
    1371         if (! yyptr) 
    1372           goto yyexhaustedlab; 
    1373         YYSTACK_RELOCATE (yyss_alloc, yyss); 
    1374         YYSTACK_RELOCATE (yyvs_alloc, yyvs); 
     1205        yytype_int16 *yyss1 = yyss; 
     1206        union yyalloc *yyptr = 
     1207          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 
     1208        if (! yyptr) 
     1209          goto yyexhaustedlab; 
     1210        YYSTACK_RELOCATE (yyss_alloc, yyss); 
     1211        YYSTACK_RELOCATE (yyvs_alloc, yyvs); 
    13751212#  undef YYSTACK_RELOCATE 
    1376         if (yyss1 != yyssa) 
    1377           YYSTACK_FREE (yyss1); 
     1213        if (yyss1 != yyssa) 
     1214          YYSTACK_FREE (yyss1); 
    13781215      } 
    13791216# endif 
     
    13841221 
    13851222      YYDPRINTF ((stderr, "Stack size increased to %lu\n", 
    1386                   (unsigned long int) yystacksize)); 
     1223                  (unsigned long int) yystacksize)); 
    13871224 
    13881225      if (yyss + yystacksize - 1 <= yyssp) 
    1389         YYABORT; 
     1226        YYABORT; 
    13901227    } 
    13911228 
     
    14161253    { 
    14171254      YYDPRINTF ((stderr, "Reading a token: ")); 
    1418       yychar = YYLEX; 
     1255      yychar = yylex (); 
    14191256    } 
    14201257 
     
    14811318 
    14821319  /* If YYLEN is nonzero, implement the default value of the action: 
    1483      `$$ = $1'. 
     1320     '$$ = $1'. 
    14841321 
    14851322     Otherwise, the following line sets YYVAL to garbage. 
     
    14951332    { 
    14961333        case 2: 
    1497 /* Line 1792 of yacc.c  */ 
    1498 #line 61 "yacc_parser.yacc" 
     1334#line 61 "yacc_parser.yacc" /* yacc.c:1646  */ 
    14991335    { /* Nothing to do */ } 
     1336#line 1337 "yacc_parser.cpp" /* yacc.c:1646  */ 
    15001337    break; 
    15011338 
    15021339  case 3: 
    1503 /* Line 1792 of yacc.c  */ 
    1504 #line 62 "yacc_parser.yacc" 
    1505     { parsed = (yyvsp[(1) - (2)].filterNode); } 
     1340#line 62 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1341    { parsed = (yyvsp[-1].filterNode); } 
     1342#line 1343 "yacc_parser.cpp" /* yacc.c:1646  */ 
    15061343    break; 
    15071344 
    15081345  case 4: 
    1509 /* Line 1792 of yacc.c  */ 
    1510 #line 66 "yacc_parser.yacc" 
    1511     { (yyval.scalarNode) = new CScalarValExprNode(*(yyvsp[(1) - (1)].str)); delete (yyvsp[(1) - (1)].str); } 
     1346#line 66 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1347    { (yyval.scalarNode) = new CScalarValExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); } 
     1348#line 1349 "yacc_parser.cpp" /* yacc.c:1646  */ 
    15121349    break; 
    15131350 
    15141351  case 5: 
    1515 /* Line 1792 of yacc.c  */ 
    1516 #line 67 "yacc_parser.yacc" 
    1517     { (yyval.scalarNode) = new CScalarVarExprNode(*(yyvsp[(1) - (1)].str)); delete (yyvsp[(1) - (1)].str); } 
     1352#line 67 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1353    { (yyval.scalarNode) = new CScalarVarExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); } 
     1354#line 1355 "yacc_parser.cpp" /* yacc.c:1646  */ 
    15181355    break; 
    15191356 
    15201357  case 6: 
    1521 /* Line 1792 of yacc.c  */ 
    1522 #line 68 "yacc_parser.yacc" 
    1523     { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "add", (yyvsp[(3) - (3)].scalarNode)); } 
     1358#line 68 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1359    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "add", (yyvsp[0].scalarNode)); } 
     1360#line 1361 "yacc_parser.cpp" /* yacc.c:1646  */ 
    15241361    break; 
    15251362 
    15261363  case 7: 
    1527 /* Line 1792 of yacc.c  */ 
    1528 #line 69 "yacc_parser.yacc" 
    1529     { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "minus", (yyvsp[(3) - (3)].scalarNode)); } 
     1364#line 69 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1365    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "minus", (yyvsp[0].scalarNode)); } 
     1366#line 1367 "yacc_parser.cpp" /* yacc.c:1646  */ 
    15301367    break; 
    15311368 
    15321369  case 8: 
    1533 /* Line 1792 of yacc.c  */ 
    1534 #line 70 "yacc_parser.yacc" 
    1535     { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "mult", (yyvsp[(3) - (3)].scalarNode)); } 
     1370#line 70 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1371    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "mult", (yyvsp[0].scalarNode)); } 
     1372#line 1373 "yacc_parser.cpp" /* yacc.c:1646  */ 
    15361373    break; 
    15371374 
    15381375  case 9: 
    1539 /* Line 1792 of yacc.c  */ 
    1540 #line 71 "yacc_parser.yacc" 
    1541     { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "div", (yyvsp[(3) - (3)].scalarNode)); } 
     1376#line 71 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1377    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "div", (yyvsp[0].scalarNode)); } 
     1378#line 1379 "yacc_parser.cpp" /* yacc.c:1646  */ 
    15421379    break; 
    15431380 
    15441381  case 10: 
    1545 /* Line 1792 of yacc.c  */ 
    1546 #line 72 "yacc_parser.yacc" 
    1547     { (yyval.scalarNode) = new CScalarUnaryOpExprNode("neg", (yyvsp[(2) - (2)].scalarNode)); } 
     1382#line 72 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1383    { (yyval.scalarNode) = new CScalarUnaryOpExprNode("neg", (yyvsp[0].scalarNode)); } 
     1384#line 1385 "yacc_parser.cpp" /* yacc.c:1646  */ 
    15481385    break; 
    15491386 
    15501387  case 11: 
    1551 /* Line 1792 of yacc.c  */ 
    1552 #line 73 "yacc_parser.yacc" 
    1553     { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "pow", (yyvsp[(3) - (3)].scalarNode)); } 
     1388#line 73 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1389    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "pow", (yyvsp[0].scalarNode)); } 
     1390#line 1391 "yacc_parser.cpp" /* yacc.c:1646  */ 
    15541391    break; 
    15551392 
    15561393  case 12: 
    1557 /* Line 1792 of yacc.c  */ 
    1558 #line 74 "yacc_parser.yacc" 
    1559     { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "eq", (yyvsp[(3) - (3)].scalarNode)); } 
     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  */ 
    15601397    break; 
    15611398 
    15621399  case 13: 
    1563 /* Line 1792 of yacc.c  */ 
    1564 #line 75 "yacc_parser.yacc" 
    1565     { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "lt", (yyvsp[(3) - (3)].scalarNode)); } 
     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  */ 
    15661403    break; 
    15671404 
    15681405  case 14: 
    1569 /* Line 1792 of yacc.c  */ 
    1570 #line 76 "yacc_parser.yacc" 
    1571     { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "gt", (yyvsp[(3) - (3)].scalarNode)); } 
     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  */ 
    15721409    break; 
    15731410 
    15741411  case 15: 
    1575 /* Line 1792 of yacc.c  */ 
    1576 #line 77 "yacc_parser.yacc" 
    1577     { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "le", (yyvsp[(3) - (3)].scalarNode)); } 
     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  */ 
    15781415    break; 
    15791416 
    15801417  case 16: 
    1581 /* Line 1792 of yacc.c  */ 
    1582 #line 78 "yacc_parser.yacc" 
    1583     { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "ge", (yyvsp[(3) - (3)].scalarNode)); } 
     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  */ 
    15841421    break; 
    15851422 
    15861423  case 17: 
    1587 /* Line 1792 of yacc.c  */ 
    1588 #line 79 "yacc_parser.yacc" 
    1589     { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "ne", (yyvsp[(3) - (3)].scalarNode)); } 
     1424#line 79 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1425    { (yyval.scalarNode) = (yyvsp[-1].scalarNode); } 
     1426#line 1427 "yacc_parser.cpp" /* yacc.c:1646  */ 
    15901427    break; 
    15911428 
    15921429  case 18: 
    1593 /* Line 1792 of yacc.c  */ 
    1594 #line 80 "yacc_parser.yacc" 
    1595     { (yyval.scalarNode) = (yyvsp[(2) - (3)].scalarNode); } 
     1430#line 80 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1431    { (yyval.scalarNode) = new CScalarUnaryOpExprNode(*(yyvsp[-3].str), (yyvsp[-1].scalarNode)); delete (yyvsp[-3].str); } 
     1432#line 1433 "yacc_parser.cpp" /* yacc.c:1646  */ 
    15961433    break; 
    15971434 
    15981435  case 19: 
    1599 /* Line 1792 of yacc.c  */ 
    1600 #line 81 "yacc_parser.yacc" 
    1601     { (yyval.scalarNode) = new CScalarUnaryOpExprNode(*(yyvsp[(1) - (4)].str), (yyvsp[(3) - (4)].scalarNode)); delete (yyvsp[(1) - (4)].str); } 
     1436#line 84 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1437    { (yyval.filterNode) = new CFilterFieldExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); } 
     1438#line 1439 "yacc_parser.cpp" /* yacc.c:1646  */ 
    16021439    break; 
    16031440 
    16041441  case 20: 
    1605 /* Line 1792 of yacc.c  */ 
    1606 #line 85 "yacc_parser.yacc" 
    1607     { (yyval.filterNode) = new CFilterFieldExprNode(*(yyvsp[(1) - (1)].str)); delete (yyvsp[(1) - (1)].str); } 
     1442#line 85 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1443    { (yyval.filterNode) = new CFilterTemporalFieldExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); } 
     1444#line 1445 "yacc_parser.cpp" /* yacc.c:1646  */ 
    16081445    break; 
    16091446 
    16101447  case 21: 
    1611 /* Line 1792 of yacc.c  */ 
    1612 #line 86 "yacc_parser.yacc" 
    1613     { (yyval.filterNode) = new CFilterTemporalFieldExprNode(*(yyvsp[(1) - (1)].str)); delete (yyvsp[(1) - (1)].str); } 
     1448#line 86 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1449    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "add", (yyvsp[0].filterNode)); } 
     1450#line 1451 "yacc_parser.cpp" /* yacc.c:1646  */ 
    16141451    break; 
    16151452 
    16161453  case 22: 
    1617 /* Line 1792 of yacc.c  */ 
    1618 #line 87 "yacc_parser.yacc" 
    1619     { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "add", (yyvsp[(3) - (3)].filterNode)); } 
     1454#line 87 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1455    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "minus", (yyvsp[0].filterNode)); } 
     1456#line 1457 "yacc_parser.cpp" /* yacc.c:1646  */ 
    16201457    break; 
    16211458 
    16221459  case 23: 
    1623 /* Line 1792 of yacc.c  */ 
    1624 #line 88 "yacc_parser.yacc" 
    1625     { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "minus", (yyvsp[(3) - (3)].filterNode)); } 
     1460#line 88 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1461    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "mult", (yyvsp[0].filterNode)); } 
     1462#line 1463 "yacc_parser.cpp" /* yacc.c:1646  */ 
    16261463    break; 
    16271464 
    16281465  case 24: 
    1629 /* Line 1792 of yacc.c  */ 
    1630 #line 89 "yacc_parser.yacc" 
    1631     { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "mult", (yyvsp[(3) - (3)].filterNode)); } 
     1466#line 89 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1467    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "div", (yyvsp[0].filterNode)); } 
     1468#line 1469 "yacc_parser.cpp" /* yacc.c:1646  */ 
    16321469    break; 
    16331470 
    16341471  case 25: 
    1635 /* Line 1792 of yacc.c  */ 
    1636 #line 90 "yacc_parser.yacc" 
    1637     { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "div", (yyvsp[(3) - (3)].filterNode)); } 
     1472#line 90 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1473    { (yyval.filterNode) = new CFilterUnaryOpExprNode("neg", (yyvsp[0].filterNode)); } 
     1474#line 1475 "yacc_parser.cpp" /* yacc.c:1646  */ 
    16381475    break; 
    16391476 
    16401477  case 26: 
    1641 /* Line 1792 of yacc.c  */ 
    1642 #line 91 "yacc_parser.yacc" 
    1643     { (yyval.filterNode) = new CFilterUnaryOpExprNode("neg", (yyvsp[(2) - (2)].filterNode)); } 
     1478#line 91 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1479    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "pow", (yyvsp[0].filterNode)); } 
     1480#line 1481 "yacc_parser.cpp" /* yacc.c:1646  */ 
    16441481    break; 
    16451482 
    16461483  case 27: 
    1647 /* Line 1792 of yacc.c  */ 
    1648 #line 92 "yacc_parser.yacc" 
    1649     { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "pow", (yyvsp[(3) - (3)].filterNode)); } 
     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  */ 
    16501487    break; 
    16511488 
    16521489  case 28: 
    1653 /* Line 1792 of yacc.c  */ 
    1654 #line 93 "yacc_parser.yacc" 
    1655     { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "eq", (yyvsp[(3) - (3)].filterNode)); } 
     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  */ 
    16561493    break; 
    16571494 
    16581495  case 29: 
    1659 /* Line 1792 of yacc.c  */ 
    1660 #line 94 "yacc_parser.yacc" 
    1661     { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "lt", (yyvsp[(3) - (3)].filterNode)); } 
     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  */ 
    16621499    break; 
    16631500 
    16641501  case 30: 
    1665 /* Line 1792 of yacc.c  */ 
    1666 #line 95 "yacc_parser.yacc" 
    1667     { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "gt", (yyvsp[(3) - (3)].filterNode)); } 
     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  */ 
    16681505    break; 
    16691506 
    16701507  case 31: 
    1671 /* Line 1792 of yacc.c  */ 
    1672 #line 96 "yacc_parser.yacc" 
    1673     { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "le", (yyvsp[(3) - (3)].filterNode)); } 
     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  */ 
    16741511    break; 
    16751512 
    16761513  case 32: 
    1677 /* Line 1792 of yacc.c  */ 
    1678 #line 97 "yacc_parser.yacc" 
    1679     { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "ge", (yyvsp[(3) - (3)].filterNode)); } 
     1514#line 97 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1515    { (yyval.filterNode) = (yyvsp[-1].filterNode); } 
     1516#line 1517 "yacc_parser.cpp" /* yacc.c:1646  */ 
    16801517    break; 
    16811518 
    16821519  case 33: 
    1683 /* Line 1792 of yacc.c  */ 
    1684 #line 98 "yacc_parser.yacc" 
    1685     { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "ne", (yyvsp[(3) - (3)].filterNode)); } 
     1520#line 98 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1521    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "add", (yyvsp[0].scalarNode)); } 
     1522#line 1523 "yacc_parser.cpp" /* yacc.c:1646  */ 
    16861523    break; 
    16871524 
    16881525  case 34: 
    1689 /* Line 1792 of yacc.c  */ 
    1690 #line 99 "yacc_parser.yacc" 
    1691     { (yyval.filterNode) = (yyvsp[(2) - (3)].filterNode); } 
     1526#line 99 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1527    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "add", (yyvsp[0].filterNode)); } 
     1528#line 1529 "yacc_parser.cpp" /* yacc.c:1646  */ 
    16921529    break; 
    16931530 
    16941531  case 35: 
    1695 /* Line 1792 of yacc.c  */ 
    1696 #line 100 "yacc_parser.yacc" 
    1697     { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "add", (yyvsp[(3) - (3)].scalarNode)); } 
     1532#line 100 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1533    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "minus", (yyvsp[0].scalarNode)); } 
     1534#line 1535 "yacc_parser.cpp" /* yacc.c:1646  */ 
    16981535    break; 
    16991536 
    17001537  case 36: 
    1701 /* Line 1792 of yacc.c  */ 
    1702 #line 101 "yacc_parser.yacc" 
    1703     { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "add", (yyvsp[(3) - (3)].filterNode)); } 
     1538#line 101 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1539    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "minus", (yyvsp[0].filterNode)); } 
     1540#line 1541 "yacc_parser.cpp" /* yacc.c:1646  */ 
    17041541    break; 
    17051542 
    17061543  case 37: 
    1707 /* Line 1792 of yacc.c  */ 
    1708 #line 102 "yacc_parser.yacc" 
    1709     { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "minus", (yyvsp[(3) - (3)].scalarNode)); } 
     1544#line 102 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1545    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "mult", (yyvsp[0].scalarNode)); } 
     1546#line 1547 "yacc_parser.cpp" /* yacc.c:1646  */ 
    17101547    break; 
    17111548 
    17121549  case 38: 
    1713 /* Line 1792 of yacc.c  */ 
    1714 #line 103 "yacc_parser.yacc" 
    1715     { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "minus", (yyvsp[(3) - (3)].filterNode)); } 
     1550#line 103 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1551    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "mult", (yyvsp[0].filterNode)); } 
     1552#line 1553 "yacc_parser.cpp" /* yacc.c:1646  */ 
    17161553    break; 
    17171554 
    17181555  case 39: 
    1719 /* Line 1792 of yacc.c  */ 
    1720 #line 104 "yacc_parser.yacc" 
    1721     { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "mult", (yyvsp[(3) - (3)].scalarNode)); } 
     1556#line 104 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1557    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "div", (yyvsp[0].scalarNode)); } 
     1558#line 1559 "yacc_parser.cpp" /* yacc.c:1646  */ 
    17221559    break; 
    17231560 
    17241561  case 40: 
    1725 /* Line 1792 of yacc.c  */ 
    1726 #line 105 "yacc_parser.yacc" 
    1727     { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "mult", (yyvsp[(3) - (3)].filterNode)); } 
     1562#line 105 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1563    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "div", (yyvsp[0].filterNode)); } 
     1564#line 1565 "yacc_parser.cpp" /* yacc.c:1646  */ 
    17281565    break; 
    17291566 
    17301567  case 41: 
    1731 /* Line 1792 of yacc.c  */ 
    1732 #line 106 "yacc_parser.yacc" 
    1733     { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "div", (yyvsp[(3) - (3)].scalarNode)); } 
     1568#line 106 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1569    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "pow", (yyvsp[0].scalarNode)); } 
     1570#line 1571 "yacc_parser.cpp" /* yacc.c:1646  */ 
    17341571    break; 
    17351572 
    17361573  case 42: 
    1737 /* Line 1792 of yacc.c  */ 
    1738 #line 107 "yacc_parser.yacc" 
    1739     { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "div", (yyvsp[(3) - (3)].filterNode)); } 
     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  */ 
    17401577    break; 
    17411578 
    17421579  case 43: 
    1743 /* Line 1792 of yacc.c  */ 
    1744 #line 108 "yacc_parser.yacc" 
    1745     { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "pow", (yyvsp[(3) - (3)].scalarNode)); } 
     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  */ 
    17461583    break; 
    17471584 
    17481585  case 44: 
    1749 /* Line 1792 of yacc.c  */ 
    1750 #line 109 "yacc_parser.yacc" 
    1751     { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "eq", (yyvsp[(3) - (3)].scalarNode)); } 
     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  */ 
    17521589    break; 
    17531590 
    17541591  case 45: 
    1755 /* Line 1792 of yacc.c  */ 
    1756 #line 110 "yacc_parser.yacc" 
    1757     { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "eq", (yyvsp[(3) - (3)].filterNode)); } 
     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  */ 
    17581595    break; 
    17591596 
    17601597  case 46: 
    1761 /* Line 1792 of yacc.c  */ 
    1762 #line 111 "yacc_parser.yacc" 
    1763     { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "lt", (yyvsp[(3) - (3)].scalarNode)); } 
     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  */ 
    17641601    break; 
    17651602 
    17661603  case 47: 
    1767 /* Line 1792 of yacc.c  */ 
    1768 #line 112 "yacc_parser.yacc" 
    1769     { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "lt", (yyvsp[(3) - (3)].filterNode)); } 
     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  */ 
    17701607    break; 
    17711608 
    17721609  case 48: 
    1773 /* Line 1792 of yacc.c  */ 
    1774 #line 113 "yacc_parser.yacc" 
    1775     { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "gt", (yyvsp[(3) - (3)].scalarNode)); } 
     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  */ 
    17761613    break; 
    17771614 
    17781615  case 49: 
    1779 /* Line 1792 of yacc.c  */ 
    1780 #line 114 "yacc_parser.yacc" 
    1781     { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "gt", (yyvsp[(3) - (3)].filterNode)); } 
     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  */ 
    17821619    break; 
    17831620 
    17841621  case 50: 
    1785 /* Line 1792 of yacc.c  */ 
    1786 #line 115 "yacc_parser.yacc" 
    1787     { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "le", (yyvsp[(3) - (3)].scalarNode)); } 
     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  */ 
    17881625    break; 
    17891626 
    17901627  case 51: 
    1791 /* Line 1792 of yacc.c  */ 
    1792 #line 116 "yacc_parser.yacc" 
    1793     { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "le", (yyvsp[(3) - (3)].filterNode)); } 
     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  */ 
    17941631    break; 
    17951632 
    17961633  case 52: 
    1797 /* Line 1792 of yacc.c  */ 
    1798 #line 117 "yacc_parser.yacc" 
    1799     { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "ge", (yyvsp[(3) - (3)].scalarNode)); } 
    1800     break; 
    1801  
    1802   case 53: 
    1803 /* Line 1792 of yacc.c  */ 
    1804 #line 118 "yacc_parser.yacc" 
    1805     { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "ge", (yyvsp[(3) - (3)].filterNode)); } 
    1806     break; 
    1807  
    1808   case 54: 
    1809 /* Line 1792 of yacc.c  */ 
    1810 #line 119 "yacc_parser.yacc" 
    1811     { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "ne", (yyvsp[(3) - (3)].scalarNode)); } 
    1812     break; 
    1813  
    1814   case 55: 
    1815 /* Line 1792 of yacc.c  */ 
    1816 #line 120 "yacc_parser.yacc" 
    1817     { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "ne", (yyvsp[(3) - (3)].filterNode)); } 
    1818     break; 
    1819  
    1820   case 56: 
    1821 /* Line 1792 of yacc.c  */ 
    1822 #line 121 "yacc_parser.yacc" 
    1823     { (yyval.filterNode) = new CFilterUnaryOpExprNode(*(yyvsp[(1) - (4)].str), (yyvsp[(3) - (4)].filterNode)); delete (yyvsp[(1) - (4)].str); } 
    1824     break; 
    1825  
    1826  
    1827 /* Line 1792 of yacc.c  */ 
    1828 #line 1829 "yacc_parser.cpp" 
     1634#line 117 "yacc_parser.yacc" /* yacc.c:1646  */ 
     1635    { (yyval.filterNode) = new CFilterUnaryOpExprNode(*(yyvsp[-3].str), (yyvsp[-1].filterNode)); delete (yyvsp[-3].str); } 
     1636#line 1637 "yacc_parser.cpp" /* yacc.c:1646  */ 
     1637    break; 
     1638 
     1639 
     1640#line 1641 "yacc_parser.cpp" /* yacc.c:1646  */ 
    18291641      default: break; 
    18301642    } 
     
    18481660  *++yyvsp = yyval; 
    18491661 
    1850   /* Now `shift' the result of the reduction.  Determine what state 
     1662  /* Now 'shift' the result of the reduction.  Determine what state 
    18511663     that goes to, based on the state we popped back to and the rule 
    18521664     number reduced by.  */ 
     
    18631675 
    18641676 
    1865 /*------------------------------------. 
    1866 | yyerrlab -- here on detecting error | 
    1867 `------------------------------------*/ 
     1677/*--------------------------------------. 
     1678| yyerrlab -- here on detecting error. | 
     1679`--------------------------------------*/ 
    18681680yyerrlab: 
    18691681  /* Make sure we have latest lookahead translation.  See comments at 
     
    19161728    { 
    19171729      /* If just tried and failed to reuse lookahead token after an 
    1918         error, discard it.  */ 
     1730        error, discard it.  */ 
    19191731 
    19201732      if (yychar <= YYEOF) 
    1921         { 
    1922           /* Return failure if at end of input.  */ 
    1923           if (yychar == YYEOF) 
    1924             YYABORT; 
    1925         } 
     1733        { 
     1734          /* Return failure if at end of input.  */ 
     1735          if (yychar == YYEOF) 
     1736            YYABORT; 
     1737        } 
    19261738      else 
    1927         { 
    1928           yydestruct ("Error: discarding", 
    1929                       yytoken, &yylval); 
    1930           yychar = YYEMPTY; 
    1931         } 
     1739        { 
     1740          yydestruct ("Error: discarding", 
     1741                      yytoken, &yylval); 
     1742          yychar = YYEMPTY; 
     1743        } 
    19321744    } 
    19331745 
     
    19481760     goto yyerrorlab; 
    19491761 
    1950   /* Do not reclaim the symbols of the rule which action triggered 
     1762  /* Do not reclaim the symbols of the rule whose action triggered 
    19511763     this YYERROR.  */ 
    19521764  YYPOPSTACK (yylen); 
     
    19611773`-------------------------------------------------------------*/ 
    19621774yyerrlab1: 
    1963   yyerrstatus = 3;      /* Each real token shifted decrements this.  */ 
     1775  yyerrstatus = 3;      /* Each real token shifted decrements this.  */ 
    19641776 
    19651777  for (;;) 
     
    19671779      yyn = yypact[yystate]; 
    19681780      if (!yypact_value_is_default (yyn)) 
    1969         { 
    1970           yyn += YYTERROR; 
    1971           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 
    1972             { 
    1973               yyn = yytable[yyn]; 
    1974               if (0 < yyn) 
    1975                 break; 
    1976             } 
    1977         } 
     1781        { 
     1782          yyn += YYTERROR; 
     1783          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 
     1784            { 
     1785              yyn = yytable[yyn]; 
     1786              if (0 < yyn) 
     1787                break; 
     1788            } 
     1789        } 
    19781790 
    19791791      /* Pop the current state because it cannot handle the error token.  */ 
    19801792      if (yyssp == yyss) 
    1981         YYABORT; 
     1793        YYABORT; 
    19821794 
    19831795 
    19841796      yydestruct ("Error: popping", 
    1985                   yystos[yystate], yyvsp); 
     1797                  yystos[yystate], yyvsp); 
    19861798      YYPOPSTACK (1); 
    19871799      yystate = *yyssp; 
     
    20341846                  yytoken, &yylval); 
    20351847    } 
    2036   /* Do not reclaim the symbols of the rule which action triggered 
     1848  /* Do not reclaim the symbols of the rule whose action triggered 
    20371849     this YYABORT or YYACCEPT.  */ 
    20381850  YYPOPSTACK (yylen); 
     
    20411853    { 
    20421854      yydestruct ("Cleanup: popping", 
    2043                   yystos[*yyssp], yyvsp); 
     1855                  yystos[*yyssp], yyvsp); 
    20441856      YYPOPSTACK (1); 
    20451857    } 
     
    20521864    YYSTACK_FREE (yymsg); 
    20531865#endif 
    2054   /* Make sure YYID is used.  */ 
    2055   return YYID (yyresult); 
     1866  return yyresult; 
    20561867} 
    2057  
    2058  
    2059 /* Line 2055 of yacc.c  */ 
    2060 #line 123 "yacc_parser.yacc" 
     1868#line 119 "yacc_parser.yacc" /* yacc.c:1906  */ 
    20611869 
    20621870 
  • XIOS/dev/branch_yushan/src/parse_expr/yacc_parser.hpp

    r1019 r1037  
    1 /* A Bison parser, made by GNU Bison 2.7.  */ 
     1/* A Bison parser, made by GNU Bison 3.0.2.  */ 
    22 
    33/* Bison interface for Yacc-like parsers in C 
    4     
    5       Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. 
    6     
     4 
     5   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. 
     6 
    77   This program is free software: you can redistribute it and/or modify 
    88   it under the terms of the GNU General Public License as published by 
    99   the Free Software Foundation, either version 3 of the License, or 
    1010   (at your option) any later version. 
    11     
     11 
    1212   This program is distributed in the hope that it will be useful, 
    1313   but WITHOUT ANY WARRANTY; without even the implied warranty of 
    1414   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1515   GNU General Public License for more details. 
    16     
     16 
    1717   You should have received a copy of the GNU General Public License 
    1818   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */ 
     
    2727   Bison output files to be licensed under the GNU General Public 
    2828   License without this special exception. 
    29     
     29 
    3030   This special exception was added by the Free Software Foundation in 
    3131   version 2.2 of Bison.  */ 
     
    3333#ifndef YY_YY_YACC_PARSER_HPP_INCLUDED 
    3434# define YY_YY_YACC_PARSER_HPP_INCLUDED 
    35 /* Enabling traces.  */ 
     35/* Debug traces.  */ 
    3636#ifndef YYDEBUG 
    3737# define YYDEBUG 0 
     
    4141#endif 
    4242 
    43 /* Tokens.  */ 
     43/* Token type.  */ 
    4444#ifndef YYTOKENTYPE 
    4545# define YYTOKENTYPE 
    46    /* Put the tokens into the symbol table, so that GDB and other debuggers 
    47       know about them.  */ 
    48    enum yytokentype { 
    49      NUMBER = 258, 
    50      VAR = 259, 
    51      ID = 260, 
    52      AVERAGE = 261, 
    53      PLUS = 262, 
    54      MINUS = 263, 
    55      TIMES = 264, 
    56      DIVIDE = 265, 
    57      POWER = 266, 
    58      EQ = 267, 
    59      LT = 268, 
    60      GT = 269, 
    61      LE = 270, 
    62      GE = 271, 
    63      NE = 272, 
    64      LEFT_PARENTHESIS = 273, 
    65      RIGHT_PARENTHESIS = 274, 
    66      END = 275, 
    67      NEG = 276 
    68    }; 
     46  enum yytokentype 
     47  { 
     48    NUMBER = 258, 
     49    VAR = 259, 
     50    ID = 260, 
     51    AVERAGE = 261, 
     52    PLUS = 262, 
     53    MINUS = 263, 
     54    TIMES = 264, 
     55    DIVIDE = 265, 
     56    POWER = 266, 
     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 
     66  }; 
    6967#endif 
    7068 
    71  
     69/* Value type.  */ 
    7270#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 
    73 typedef union YYSTYPE 
     71typedef union YYSTYPE YYSTYPE; 
     72union YYSTYPE 
    7473{ 
    75 /* Line 2058 of yacc.c  */ 
    76 #line 35 "yacc_parser.yacc" 
     74#line 35 "yacc_parser.yacc" /* yacc.c:1909  */ 
    7775 
    7876  std::string* str;                /* symbol table index */ 
     
    8078  xios::IFilterExprNode* filterNode; 
    8179 
    82  
    83 /* Line 2058 of yacc.c  */ 
    84 #line 85 "yacc_parser.hpp" 
    85 } YYSTYPE; 
     80#line 81 "yacc_parser.hpp" /* yacc.c:1909  */ 
     81}; 
    8682# define YYSTYPE_IS_TRIVIAL 1 
    87 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 
    8883# define YYSTYPE_IS_DECLARED 1 
    8984#endif 
    9085 
     86 
    9187extern YYSTYPE yylval; 
    9288 
    93 #ifdef YYPARSE_PARAM 
    94 #if defined __STDC__ || defined __cplusplus 
    95 int yyparse (void *YYPARSE_PARAM); 
    96 #else 
    97 int yyparse (); 
    98 #endif 
    99 #else /* ! YYPARSE_PARAM */ 
    100 #if defined __STDC__ || defined __cplusplus 
    10189int yyparse (void); 
    102 #else 
    103 int yyparse (); 
    104 #endif 
    105 #endif /* ! YYPARSE_PARAM */ 
    10690 
    10791#endif /* !YY_YY_YACC_PARSER_HPP_INCLUDED  */ 
  • XIOS/dev/branch_yushan/src/parse_expr/yacc_parser.yacc

    r1019 r1037  
    4242%token <str> VAR ID AVERAGE 
    4343%token PLUS MINUS TIMES DIVIDE POWER 
    44 %token EQ LT GT LE GE NE 
     44%token EQ LT GT LE GE 
    4545%token LEFT_PARENTHESIS RIGHT_PARENTHESIS 
    4646%token <str> END 
    4747 
    48 %left EQ LT GT LE GE NE 
     48%left EQ LT GT LE GE 
    4949%left PLUS MINUS 
    5050%left TIMES DIVIDE 
     
    7777          | Expression LE Expression  { $$ = new CScalarBinaryOpExprNode($1, "le", $3); } 
    7878          | Expression GE Expression  { $$ = new CScalarBinaryOpExprNode($1, "ge", $3); } 
    79           | Expression NE Expression  { $$ = new CScalarBinaryOpExprNode($1, "ne", $3); } 
    8079          | LEFT_PARENTHESIS Expression RIGHT_PARENTHESIS    { $$ = $2; } 
    8180          | ID LEFT_PARENTHESIS Expression RIGHT_PARENTHESIS { $$ = new CScalarUnaryOpExprNode(*$1, $3); delete $1; } 
     
    9695          | Field_expr LE Field_expr { $$ = new CFilterFieldFieldOpExprNode($1, "le", $3); } 
    9796          | Field_expr GE Field_expr { $$ = new CFilterFieldFieldOpExprNode($1, "ge", $3); } 
    98           | Field_expr NE Field_expr { $$ = new CFilterFieldFieldOpExprNode($1, "ne", $3); } 
    9997          | LEFT_PARENTHESIS Field_expr RIGHT_PARENTHESIS       { $$ = $2; } 
    10098          | Field_expr PLUS Expression   { $$ = new CFilterFieldScalarOpExprNode($1, "add", $3); } 
     
    117115          | Field_expr GE Expression { $$ = new CFilterFieldScalarOpExprNode($1, "ge", $3); } 
    118116          | Expression GE Field_expr { $$ = new CFilterScalarFieldOpExprNode($1, "ge", $3); } 
    119           | Field_expr NE Expression { $$ = new CFilterFieldScalarOpExprNode($1, "ne", $3); } 
    120           | Expression NE Field_expr { $$ = new CFilterScalarFieldOpExprNode($1, "ne", $3); } 
    121117          | ID LEFT_PARENTHESIS Field_expr RIGHT_PARENTHESIS { $$ = new CFilterUnaryOpExprNode(*$1, $3); delete $1; } 
    122118          ; 
Note: See TracChangeset for help on using the changeset viewer.