Changeset 3911 in josm


Ignore:
Timestamp:
2011-02-18T19:34:19+01:00 (10 years ago)
Author:
bastiK
Message:

fixed #5985 - MapCSS conditions don't handle unquoted numeric values

Location:
trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/parser
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/parser/MapCSSParser.java

    r3902 r3911  
    5151  }
    5252
     53  final public int int_() throws ParseException {
     54    int i;
     55    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     56    case MINUS:
     57      jj_consume_token(MINUS);
     58      i = uint();
     59                       {if (true) return -i;}
     60      break;
     61    case UINT:
     62      i = uint();
     63                                                 {if (true) return i;}
     64      break;
     65    default:
     66      jj_la1[0] = jj_gen;
     67      jj_consume_token(-1);
     68      throw new ParseException();
     69    }
     70    throw new Error("Missing return statement in function");
     71  }
     72
    5373  final public float ufloat() throws ParseException {
    5474    Token f;
     
    6181      break;
    6282    default:
    63       jj_la1[0] = jj_gen;
     83      jj_la1[1] = jj_gen;
    6484      jj_consume_token(-1);
    6585      throw new ParseException();
     
    83103      break;
    84104    default:
    85       jj_la1[1] = jj_gen;
     105      jj_la1[2] = jj_gen;
    86106      jj_consume_token(-1);
    87107      throw new ParseException();
     
    110130      break;
    111131    default:
    112       jj_la1[2] = jj_gen;
     132      jj_la1[3] = jj_gen;
    113133      jj_consume_token(-1);
    114134      throw new ParseException();
     
    133153      break;
    134154    default:
    135       jj_la1[3] = jj_gen;
     155      jj_la1[4] = jj_gen;
    136156      ;
    137157    }
     
    150170        break;
    151171      default:
    152         jj_la1[4] = jj_gen;
     172        jj_la1[5] = jj_gen;
    153173        break label_1;
    154174      }
     
    162182        break;
    163183      default:
    164         jj_la1[5] = jj_gen;
     184        jj_la1[6] = jj_gen;
    165185        jj_consume_token(-1);
    166186        throw new ParseException();
     
    188208        break;
    189209      default:
    190         jj_la1[6] = jj_gen;
     210        jj_la1[7] = jj_gen;
    191211        break label_2;
    192212      }
     
    212232        break;
    213233      default:
    214         jj_la1[7] = jj_gen;
     234        jj_la1[8] = jj_gen;
    215235        break label_3;
    216236      }
     
    240260        break;
    241261      default:
    242         jj_la1[8] = jj_gen;
     262        jj_la1[9] = jj_gen;
    243263        break label_4;
    244264      }
     
    271291        break;
    272292      default:
    273         jj_la1[9] = jj_gen;
     293        jj_la1[10] = jj_gen;
    274294        jj_consume_token(-1);
    275295        throw new ParseException();
     
    280300      break;
    281301    default:
    282       jj_la1[10] = jj_gen;
     302      jj_la1[11] = jj_gen;
    283303      ;
    284304    }
     
    301321      break;
    302322    default:
    303       jj_la1[11] = jj_gen;
     323      jj_la1[12] = jj_gen;
    304324      jj_consume_token(-1);
    305325      throw new ParseException();
     
    310330      break;
    311331    default:
    312       jj_la1[12] = jj_gen;
     332      jj_la1[13] = jj_gen;
    313333      ;
    314334    }
     
    322342        break;
    323343      default:
    324         jj_la1[13] = jj_gen;
     344        jj_la1[14] = jj_gen;
    325345        break label_5;
    326346      }
     
    334354        break;
    335355      default:
    336         jj_la1[14] = jj_gen;
     356        jj_la1[15] = jj_gen;
    337357        jj_consume_token(-1);
    338358        throw new ParseException();
     
    345365      break;
    346366    default:
    347       jj_la1[15] = jj_gen;
     367      jj_la1[16] = jj_gen;
    348368      ;
    349369    }
     
    371391          break;
    372392        default:
    373           jj_la1[16] = jj_gen;
     393          jj_la1[17] = jj_gen;
    374394          ;
    375395        }
    376396        break;
    377397      default:
    378         jj_la1[17] = jj_gen;
     398        jj_la1[18] = jj_gen;
    379399        ;
    380400      }
    381401      break;
    382402    default:
    383       jj_la1[18] = jj_gen;
     403      jj_la1[19] = jj_gen;
    384404      jj_consume_token(-1);
    385405      throw new ParseException();
     
    393413    Expression e;
    394414    jj_consume_token(LSQUARE);
     415    s();
    395416    if (jj_2_1(2147483647)) {
    396417      c = simple_key_condition();
     418      s();
    397419      jj_consume_token(RSQUARE);
    398                                                  {if (true) return c;}
     420                                                     {if (true) return c;}
    399421    } else if (jj_2_2(2147483647)) {
    400422      c = simple_key_value_condition();
     423      s();
    401424      jj_consume_token(RSQUARE);
    402                                                        {if (true) return c;}
     425                                                           {if (true) return c;}
    403426    } else {
    404427      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     
    417440        break;
    418441      default:
    419         jj_la1[19] = jj_gen;
     442        jj_la1[20] = jj_gen;
    420443        jj_consume_token(-1);
    421444        throw new ParseException();
     
    443466          break;
    444467        default:
    445           jj_la1[20] = jj_gen;
     468          jj_la1[21] = jj_gen;
    446469          break label_6;
    447470        }
     
    453476      break;
    454477    default:
    455       jj_la1[21] = jj_gen;
     478      jj_la1[22] = jj_gen;
    456479      jj_consume_token(-1);
    457480      throw new ParseException();
     
    470493      break;
    471494    default:
    472       jj_la1[22] = jj_gen;
     495      jj_la1[23] = jj_gen;
    473496      ;
    474497    }
     
    480503      break;
    481504    default:
    482       jj_la1[23] = jj_gen;
     505      jj_la1[24] = jj_gen;
    483506      ;
    484507    }
     
    491514    String val;
    492515    float f;
     516    int i;
    493517    Condition.Op op;
    494518    key = tag_key();
    495     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    496     case STAR:
    497     case EQUAL:
    498     case EXCLAMATION:
    499     case TILDE:
    500     case DOLLAR:
    501     case CARET:
     519    s();
     520    if (jj_2_4(2)) {
     521      jj_consume_token(EQUAL);
     522      jj_consume_token(TILDE);
     523                              op=Condition.Op.REGEX;
     524      s();
     525      val = regex();
     526    } else {
    502527      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     528      case STAR:
     529      case EQUAL:
    503530      case EXCLAMATION:
    504         jj_consume_token(EXCLAMATION);
    505         jj_consume_token(EQUAL);
     531      case TILDE:
     532      case DOLLAR:
     533      case CARET:
     534        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     535        case EXCLAMATION:
     536          jj_consume_token(EXCLAMATION);
     537          jj_consume_token(EQUAL);
    506538                                            op=Condition.Op.NEQ;
    507         val = string_or_ident();
    508         break;
    509       case EQUAL:
    510         jj_consume_token(EQUAL);
     539          break;
     540        case EQUAL:
     541          jj_consume_token(EQUAL);
    511542                              op=Condition.Op.EQ;
    512         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     543          break;
    513544        case TILDE:
    514545          jj_consume_token(TILDE);
    515                                       op=Condition.Op.REGEX;
    516           val = regex();
    517           break;
    518         case IDENT:
    519         case STRING:
     546          jj_consume_token(EQUAL);
     547                                      op=Condition.Op.ONE_OF;
    520548          val = string_or_ident();
    521549          break;
     550        case CARET:
     551          jj_consume_token(CARET);
     552          jj_consume_token(EQUAL);
     553                                      op=Condition.Op.BEGINS_WITH;
     554          val = string_or_ident();
     555          break;
     556        case DOLLAR:
     557          jj_consume_token(DOLLAR);
     558          jj_consume_token(EQUAL);
     559                                       op=Condition.Op.ENDS_WITH;
     560          val = string_or_ident();
     561          break;
     562        case STAR:
     563          jj_consume_token(STAR);
     564          jj_consume_token(EQUAL);
     565                                     op=Condition.Op.CONTAINS;
     566          val = string_or_ident();
     567          break;
    522568        default:
    523           jj_la1[24] = jj_gen;
     569          jj_la1[25] = jj_gen;
    524570          jj_consume_token(-1);
    525571          throw new ParseException();
    526572        }
     573        s();
     574        if (jj_2_3(2)) {
     575          i = int_();
     576                                   val=Integer.toString(i);
     577        } else {
     578          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     579          case UINT:
     580          case UFLOAT:
     581          case MINUS:
     582            f = float_();
     583                                     val=Float.toString(f);
     584            break;
     585          case IDENT:
     586          case STRING:
     587            val = string_or_ident();
     588            break;
     589          default:
     590            jj_la1[26] = jj_gen;
     591            jj_consume_token(-1);
     592            throw new ParseException();
     593          }
     594        }
    527595        break;
    528       case TILDE:
    529         jj_consume_token(TILDE);
    530         jj_consume_token(EQUAL);
    531                                       op=Condition.Op.ONE_OF;
    532         val = string_or_ident();
    533         break;
    534       case CARET:
    535         jj_consume_token(CARET);
    536         jj_consume_token(EQUAL);
    537                                       op=Condition.Op.BEGINS_WITH;
    538         val = string_or_ident();
    539         break;
    540       case DOLLAR:
    541         jj_consume_token(DOLLAR);
    542         jj_consume_token(EQUAL);
    543                                        op=Condition.Op.ENDS_WITH;
    544         val = string_or_ident();
    545         break;
    546       case STAR:
    547         jj_consume_token(STAR);
    548         jj_consume_token(EQUAL);
    549                                      op=Condition.Op.CONTAINS;
    550         val = string_or_ident();
     596      case GREATER_EQUAL:
     597      case LESS_EQUAL:
     598      case GREATER:
     599      case LESS:
     600        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     601        case GREATER_EQUAL:
     602          jj_consume_token(GREATER_EQUAL);
     603                                      op=Condition.Op.GREATER_OR_EQUAL;
     604          break;
     605        case GREATER:
     606          jj_consume_token(GREATER);
     607                                op=Condition.Op.GREATER;
     608          break;
     609        case LESS_EQUAL:
     610          jj_consume_token(LESS_EQUAL);
     611                                   op=Condition.Op.LESS_OR_EQUAL;
     612          break;
     613        case LESS:
     614          jj_consume_token(LESS);
     615                             op=Condition.Op.LESS;
     616          break;
     617        default:
     618          jj_la1[27] = jj_gen;
     619          jj_consume_token(-1);
     620          throw new ParseException();
     621        }
     622        s();
     623        f = float_();
     624                         val=Float.toString(f);
    551625        break;
    552626      default:
    553         jj_la1[25] = jj_gen;
     627        jj_la1[28] = jj_gen;
    554628        jj_consume_token(-1);
    555629        throw new ParseException();
    556630      }
    557               {if (true) return new Condition.KeyValueCondition(key, val, op);}
    558       break;
    559     case GREATER_EQUAL:
    560     case LESS_EQUAL:
    561     case GREATER:
    562     case LESS:
    563       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    564       case GREATER_EQUAL:
    565         jj_consume_token(GREATER_EQUAL);
    566                                       op=Condition.Op.GREATER_OR_EQUAL;
    567         break;
    568       case GREATER:
    569         jj_consume_token(GREATER);
    570                                 op=Condition.Op.GREATER;
    571         break;
    572       case LESS_EQUAL:
    573         jj_consume_token(LESS_EQUAL);
    574                                    op=Condition.Op.LESS_OR_EQUAL;
    575         break;
    576       case LESS:
    577         jj_consume_token(LESS);
    578                              op=Condition.Op.LESS;
    579         break;
    580       default:
    581         jj_la1[26] = jj_gen;
    582         jj_consume_token(-1);
    583         throw new ParseException();
    584       }
    585       f = float_();
    586               {if (true) return new Condition.KeyValueCondition(key, Float.toString(f), op);}
    587       break;
    588     default:
    589       jj_la1[27] = jj_gen;
    590       jj_consume_token(-1);
    591       throw new ParseException();
    592     }
     631    }
     632      {if (true) return new Condition.KeyValueCondition(key, val, op);}
    593633    throw new Error("Missing return statement in function");
    594634  }
     
    603643      break;
    604644    default:
    605       jj_la1[28] = jj_gen;
     645      jj_la1[29] = jj_gen;
    606646      ;
    607647    }
     
    623663      break;
    624664    default:
    625       jj_la1[29] = jj_gen;
     665      jj_la1[30] = jj_gen;
    626666      jj_consume_token(-1);
    627667      throw new ParseException();
     
    645685        break;
    646686      default:
    647         jj_la1[30] = jj_gen;
     687        jj_la1[31] = jj_gen;
    648688        break label_7;
    649689      }
     
    652692      jj_consume_token(COLON);
    653693      w();
    654       if (jj_2_3(2147483647)) {
     694      if (jj_2_5(2147483647)) {
    655695        val = float_array();
    656696                  ins.add(new Instruction.AssignmentInstruction(key.image, val));
     
    666706          break;
    667707        default:
    668           jj_la1[31] = jj_gen;
     708          jj_la1[32] = jj_gen;
    669709          jj_consume_token(-1);
    670710          throw new ParseException();
    671711        }
    672       } else if (jj_2_4(2147483647)) {
     712      } else if (jj_2_6(2147483647)) {
    673713        val = expression();
    674714                  ins.add(new Instruction.AssignmentInstruction(key.image, val));
     
    683723          break;
    684724        default:
    685           jj_la1[32] = jj_gen;
     725          jj_la1[33] = jj_gen;
    686726          jj_consume_token(-1);
    687727          throw new ParseException();
     
    757797              break;
    758798            default:
    759               jj_la1[33] = jj_gen;
     799              jj_la1[34] = jj_gen;
    760800              break label_8;
    761801            }
     
    776816              break;
    777817            default:
    778               jj_la1[34] = jj_gen;
     818              jj_la1[35] = jj_gen;
    779819              break label_9;
    780820            }
     
    795835              break;
    796836            default:
    797               jj_la1[35] = jj_gen;
     837              jj_la1[36] = jj_gen;
    798838              break label_10;
    799839            }
     
    814854              break;
    815855            default:
    816               jj_la1[36] = jj_gen;
     856              jj_la1[37] = jj_gen;
    817857              break label_11;
    818858            }
     
    850890            break;
    851891          default:
    852             jj_la1[37] = jj_gen;
     892            jj_la1[38] = jj_gen;
    853893            ;
    854894          }
     
    899939          break;
    900940        default:
    901           jj_la1[38] = jj_gen;
     941          jj_la1[39] = jj_gen;
    902942          jj_consume_token(-1);
    903943          throw new ParseException();
     
    905945        break;
    906946      default:
    907         jj_la1[39] = jj_gen;
     947        jj_la1[40] = jj_gen;
    908948        ;
    909949      }
    910950      break;
    911951    default:
    912       jj_la1[40] = jj_gen;
     952      jj_la1[41] = jj_gen;
    913953      jj_consume_token(-1);
    914954      throw new ParseException();
     
    924964    FunctionExpression fn;
    925965    Object lit;
    926     if (jj_2_5(2)) {
     966    if (jj_2_7(2)) {
    927967      // both function and identifier start with an identifier
    928968              fn = function();
     
    947987        break;
    948988      default:
    949         jj_la1[41] = jj_gen;
     989        jj_la1[42] = jj_gen;
    950990        jj_consume_token(-1);
    951991        throw new ParseException();
     
    9841024          break;
    9851025        default:
    986           jj_la1[42] = jj_gen;
     1026          jj_la1[43] = jj_gen;
    9871027          break label_12;
    9881028        }
     
    9941034      break;
    9951035    default:
    996       jj_la1[43] = jj_gen;
     1036      jj_la1[44] = jj_gen;
    9971037      ;
    9981038    }
     
    10331073      break;
    10341074    default:
    1035       jj_la1[44] = jj_gen;
     1075      jj_la1[45] = jj_gen;
    10361076      jj_consume_token(-1);
    10371077      throw new ParseException();
     
    11171157  }
    11181158
     1159  private boolean jj_2_6(int xla) {
     1160    jj_la = xla; jj_lastpos = jj_scanpos = token;
     1161    try { return !jj_3_6(); }
     1162    catch(LookaheadSuccess ls) { return true; }
     1163    finally { jj_save(5, xla); }
     1164  }
     1165
     1166  private boolean jj_2_7(int xla) {
     1167    jj_la = xla; jj_lastpos = jj_scanpos = token;
     1168    try { return !jj_3_7(); }
     1169    catch(LookaheadSuccess ls) { return true; }
     1170    finally { jj_save(6, xla); }
     1171  }
     1172
     1173  private boolean jj_3R_41() {
     1174    if (jj_scan_token(DOLLAR)) return true;
     1175    if (jj_scan_token(EQUAL)) return true;
     1176    if (jj_3R_56()) return true;
     1177    return false;
     1178  }
     1179
     1180  private boolean jj_3R_40() {
     1181    if (jj_scan_token(CARET)) return true;
     1182    if (jj_scan_token(EQUAL)) return true;
     1183    if (jj_3R_56()) return true;
     1184    return false;
     1185  }
     1186
     1187  private boolean jj_3R_39() {
     1188    if (jj_scan_token(TILDE)) return true;
     1189    if (jj_scan_token(EQUAL)) return true;
     1190    if (jj_3R_56()) return true;
     1191    return false;
     1192  }
     1193
     1194  private boolean jj_3R_14() {
     1195    Token xsp;
     1196    xsp = jj_scanpos;
     1197    if (jj_scan_token(9)) jj_scanpos = xsp;
     1198    return false;
     1199  }
     1200
     1201  private boolean jj_3R_58() {
     1202    if (jj_3R_28()) return true;
     1203    return false;
     1204  }
     1205
     1206  private boolean jj_3R_38() {
     1207    if (jj_scan_token(EQUAL)) return true;
     1208    return false;
     1209  }
     1210
     1211  private boolean jj_3R_37() {
     1212    if (jj_scan_token(EXCLAMATION)) return true;
     1213    if (jj_scan_token(EQUAL)) return true;
     1214    return false;
     1215  }
     1216
     1217  private boolean jj_3R_36() {
     1218    if (jj_scan_token(REGEX)) return true;
     1219    return false;
     1220  }
     1221
     1222  private boolean jj_3R_24() {
     1223    Token xsp;
     1224    xsp = jj_scanpos;
     1225    if (jj_3R_37()) {
     1226    jj_scanpos = xsp;
     1227    if (jj_3R_38()) {
     1228    jj_scanpos = xsp;
     1229    if (jj_3R_39()) {
     1230    jj_scanpos = xsp;
     1231    if (jj_3R_40()) {
     1232    jj_scanpos = xsp;
     1233    if (jj_3R_41()) {
     1234    jj_scanpos = xsp;
     1235    if (jj_3R_42()) return true;
     1236    }
     1237    }
     1238    }
     1239    }
     1240    }
     1241    if (jj_3R_14()) return true;
     1242    xsp = jj_scanpos;
     1243    if (jj_3_3()) {
     1244    jj_scanpos = xsp;
     1245    if (jj_3R_43()) {
     1246    jj_scanpos = xsp;
     1247    if (jj_3R_44()) return true;
     1248    }
     1249    }
     1250    return false;
     1251  }
     1252
     1253  private boolean jj_3_4() {
     1254    if (jj_scan_token(EQUAL)) return true;
     1255    if (jj_scan_token(TILDE)) return true;
     1256    if (jj_3R_14()) return true;
     1257    if (jj_3R_36()) return true;
     1258    return false;
     1259  }
     1260
     1261  private boolean jj_3R_55() {
     1262    if (jj_scan_token(COLON)) return true;
     1263    if (jj_scan_token(IDENT)) return true;
     1264    return false;
     1265  }
     1266
     1267  private boolean jj_3R_56() {
     1268    Token xsp;
     1269    xsp = jj_scanpos;
     1270    if (jj_3R_73()) {
     1271    jj_scanpos = xsp;
     1272    if (jj_3R_74()) return true;
     1273    }
     1274    return false;
     1275  }
     1276
     1277  private boolean jj_3R_73() {
     1278    if (jj_scan_token(IDENT)) return true;
     1279    return false;
     1280  }
     1281
     1282  private boolean jj_3R_27() {
     1283    if (jj_3R_50()) return true;
     1284    return false;
     1285  }
     1286
     1287  private boolean jj_3R_84() {
     1288    if (jj_scan_token(HEXCOLOR)) return true;
     1289    return false;
     1290  }
     1291
     1292  private boolean jj_3R_83() {
     1293    if (jj_3R_28()) return true;
     1294    return false;
     1295  }
     1296
     1297  private boolean jj_3R_15() {
     1298    if (jj_3R_22()) return true;
     1299    if (jj_3R_14()) return true;
     1300    Token xsp;
     1301    xsp = jj_scanpos;
     1302    if (jj_3_4()) {
     1303    jj_scanpos = xsp;
     1304    if (jj_3R_24()) {
     1305    jj_scanpos = xsp;
     1306    if (jj_3R_25()) return true;
     1307    }
     1308    }
     1309    return false;
     1310  }
     1311
     1312  private boolean jj_3R_82() {
     1313    if (jj_scan_token(PLUS)) return true;
     1314    if (jj_3R_28()) return true;
     1315    return false;
     1316  }
     1317
     1318  private boolean jj_3R_81() {
     1319    if (jj_3R_56()) return true;
     1320    return false;
     1321  }
     1322
     1323  private boolean jj_3R_75() {
     1324    Token xsp;
     1325    xsp = jj_scanpos;
     1326    if (jj_3R_81()) {
     1327    jj_scanpos = xsp;
     1328    if (jj_3R_82()) {
     1329    jj_scanpos = xsp;
     1330    if (jj_3R_83()) {
     1331    jj_scanpos = xsp;
     1332    if (jj_3R_84()) return true;
     1333    }
     1334    }
     1335    }
     1336    return false;
     1337  }
     1338
     1339  private boolean jj_3R_54() {
     1340    if (jj_scan_token(STRING)) return true;
     1341    return false;
     1342  }
     1343
     1344  private boolean jj_3R_23() {
     1345    if (jj_scan_token(QUESTION)) return true;
     1346    return false;
     1347  }
     1348
     1349  private boolean jj_3R_49() {
     1350    Token xsp;
     1351    xsp = jj_scanpos;
     1352    if (jj_3R_57()) {
     1353    jj_scanpos = xsp;
     1354    if (jj_3R_58()) return true;
     1355    }
     1356    return false;
     1357  }
     1358
     1359  private boolean jj_3R_57() {
     1360    if (jj_scan_token(MINUS)) return true;
     1361    if (jj_3R_28()) return true;
     1362    return false;
     1363  }
     1364
     1365  private boolean jj_3R_21() {
     1366    if (jj_scan_token(EXCLAMATION)) return true;
     1367    return false;
     1368  }
     1369
     1370  private boolean jj_3R_85() {
     1371    if (jj_scan_token(COMMA)) return true;
     1372    if (jj_3R_18()) return true;
     1373    if (jj_3R_19()) return true;
     1374    return false;
     1375  }
     1376
     1377  private boolean jj_3R_13() {
     1378    Token xsp;
     1379    xsp = jj_scanpos;
     1380    if (jj_3R_21()) jj_scanpos = xsp;
     1381    if (jj_3R_22()) return true;
     1382    xsp = jj_scanpos;
     1383    if (jj_3R_23()) jj_scanpos = xsp;
     1384    return false;
     1385  }
     1386
     1387  private boolean jj_3R_80() {
     1388    if (jj_3R_19()) return true;
     1389    Token xsp;
     1390    while (true) {
     1391      xsp = jj_scanpos;
     1392      if (jj_3R_85()) { jj_scanpos = xsp; break; }
     1393    }
     1394    return false;
     1395  }
     1396
     1397  private boolean jj_3R_28() {
     1398    Token xsp;
     1399    xsp = jj_scanpos;
     1400    if (jj_scan_token(3)) {
     1401    jj_scanpos = xsp;
     1402    if (jj_scan_token(2)) return true;
     1403    }
     1404    return false;
     1405  }
     1406
     1407  private boolean jj_3R_35() {
     1408    if (jj_scan_token(IDENT)) return true;
     1409    Token xsp;
     1410    while (true) {
     1411      xsp = jj_scanpos;
     1412      if (jj_3R_55()) { jj_scanpos = xsp; break; }
     1413    }
     1414    return false;
     1415  }
     1416
     1417  private boolean jj_3R_34() {
     1418    if (jj_3R_54()) return true;
     1419    return false;
     1420  }
     1421
     1422  private boolean jj_3R_22() {
     1423    Token xsp;
     1424    xsp = jj_scanpos;
     1425    if (jj_3R_34()) {
     1426    jj_scanpos = xsp;
     1427    if (jj_3R_35()) return true;
     1428    }
     1429    return false;
     1430  }
     1431
     1432  private boolean jj_3R_20() {
     1433    if (jj_scan_token(IDENT)) return true;
     1434    if (jj_3R_18()) return true;
     1435    if (jj_scan_token(LPAR)) return true;
     1436    if (jj_3R_18()) return true;
     1437    Token xsp;
     1438    xsp = jj_scanpos;
     1439    if (jj_3R_80()) jj_scanpos = xsp;
     1440    if (jj_scan_token(RPAR)) return true;
     1441    return false;
     1442  }
     1443
     1444  private boolean jj_3_2() {
     1445    if (jj_3R_15()) return true;
     1446    if (jj_3R_14()) return true;
     1447    if (jj_scan_token(RSQUARE)) return true;
     1448    return false;
     1449  }
     1450
     1451  private boolean jj_3_1() {
     1452    if (jj_3R_13()) return true;
     1453    if (jj_3R_14()) return true;
     1454    if (jj_scan_token(RSQUARE)) return true;
     1455    return false;
     1456  }
     1457
     1458  private boolean jj_3R_26() {
     1459    if (jj_scan_token(MINUS)) return true;
     1460    if (jj_3R_50()) return true;
     1461    return false;
     1462  }
     1463
     1464  private boolean jj_3R_16() {
     1465    Token xsp;
     1466    xsp = jj_scanpos;
     1467    if (jj_3R_26()) {
     1468    jj_scanpos = xsp;
     1469    if (jj_3R_27()) return true;
     1470    }
     1471    return false;
     1472  }
     1473
     1474  private boolean jj_3R_60() {
     1475    if (jj_scan_token(LPAR)) return true;
     1476    if (jj_3R_18()) return true;
     1477    if (jj_3R_19()) return true;
     1478    if (jj_scan_token(RPAR)) return true;
     1479    return false;
     1480  }
     1481
     1482  private boolean jj_3R_59() {
     1483    if (jj_3R_75()) return true;
     1484    return false;
     1485  }
     1486
     1487  private boolean jj_3R_50() {
     1488    if (jj_scan_token(UINT)) return true;
     1489    return false;
     1490  }
     1491
     1492  private boolean jj_3_7() {
     1493    if (jj_3R_20()) return true;
     1494    return false;
     1495  }
     1496
     1497  private boolean jj_3R_52() {
     1498    Token xsp;
     1499    xsp = jj_scanpos;
     1500    if (jj_3_7()) {
     1501    jj_scanpos = xsp;
     1502    if (jj_3R_59()) {
     1503    jj_scanpos = xsp;
     1504    if (jj_3R_60()) return true;
     1505    }
     1506    }
     1507    return false;
     1508  }
     1509
     1510  private boolean jj_3R_72() {
     1511    if (jj_scan_token(QUESTION)) return true;
     1512    if (jj_3R_18()) return true;
     1513    if (jj_3R_52()) return true;
     1514    if (jj_3R_18()) return true;
     1515    if (jj_scan_token(COLON)) return true;
     1516    if (jj_3R_18()) return true;
     1517    if (jj_3R_52()) return true;
     1518    if (jj_3R_18()) return true;
     1519    return false;
     1520  }
     1521
     1522  private boolean jj_3R_71() {
     1523    if (jj_scan_token(PIPE)) return true;
     1524    if (jj_scan_token(PIPE)) return true;
     1525    if (jj_3R_18()) return true;
     1526    if (jj_3R_52()) return true;
     1527    if (jj_3R_18()) return true;
     1528    return false;
     1529  }
     1530
     1531  private boolean jj_3R_70() {
     1532    if (jj_scan_token(AMPERSAND)) return true;
     1533    if (jj_scan_token(AMPERSAND)) return true;
     1534    if (jj_3R_18()) return true;
     1535    if (jj_3R_52()) return true;
     1536    if (jj_3R_18()) return true;
     1537    return false;
     1538  }
     1539
    11191540  private boolean jj_3R_69() {
    1120     if (jj_3R_47()) return true;
    1121     return false;
    1122   }
    1123 
    1124   private boolean jj_3R_26() {
     1541    if (jj_scan_token(LESS)) return true;
     1542    if (jj_3R_18()) return true;
     1543    if (jj_3R_52()) return true;
     1544    if (jj_3R_18()) return true;
     1545    return false;
     1546  }
     1547
     1548  private boolean jj_3R_68() {
     1549    if (jj_scan_token(EQUAL)) return true;
     1550    Token xsp;
     1551    xsp = jj_scanpos;
     1552    if (jj_scan_token(22)) jj_scanpos = xsp;
     1553    if (jj_3R_18()) return true;
     1554    if (jj_3R_52()) return true;
     1555    if (jj_3R_18()) return true;
     1556    return false;
     1557  }
     1558
     1559  private boolean jj_3R_67() {
     1560    if (jj_scan_token(GREATER)) return true;
     1561    if (jj_3R_18()) return true;
     1562    if (jj_3R_52()) return true;
     1563    if (jj_3R_18()) return true;
     1564    return false;
     1565  }
     1566
     1567  private boolean jj_3R_66() {
     1568    if (jj_scan_token(LESS_EQUAL)) return true;
     1569    if (jj_3R_18()) return true;
     1570    if (jj_3R_52()) return true;
     1571    if (jj_3R_18()) return true;
     1572    return false;
     1573  }
     1574
     1575  private boolean jj_3R_79() {
     1576    if (jj_scan_token(SLASH)) return true;
     1577    if (jj_3R_18()) return true;
     1578    if (jj_3R_52()) return true;
     1579    if (jj_3R_18()) return true;
     1580    return false;
     1581  }
     1582
     1583  private boolean jj_3R_65() {
     1584    if (jj_scan_token(GREATER_EQUAL)) return true;
     1585    if (jj_3R_18()) return true;
     1586    if (jj_3R_52()) return true;
     1587    if (jj_3R_18()) return true;
     1588    return false;
     1589  }
     1590
     1591  private boolean jj_3R_78() {
     1592    if (jj_scan_token(MINUS)) return true;
     1593    if (jj_3R_18()) return true;
     1594    if (jj_3R_52()) return true;
     1595    if (jj_3R_18()) return true;
     1596    return false;
     1597  }
     1598
     1599  private boolean jj_3R_64() {
     1600    Token xsp;
     1601    if (jj_3R_79()) return true;
     1602    while (true) {
     1603      xsp = jj_scanpos;
     1604      if (jj_3R_79()) { jj_scanpos = xsp; break; }
     1605    }
     1606    return false;
     1607  }
     1608
     1609  private boolean jj_3R_77() {
     1610    if (jj_scan_token(STAR)) return true;
     1611    if (jj_3R_18()) return true;
     1612    if (jj_3R_52()) return true;
     1613    if (jj_3R_18()) return true;
     1614    return false;
     1615  }
     1616
     1617  private boolean jj_3R_63() {
     1618    Token xsp;
     1619    if (jj_3R_78()) return true;
     1620    while (true) {
     1621      xsp = jj_scanpos;
     1622      if (jj_3R_78()) { jj_scanpos = xsp; break; }
     1623    }
     1624    return false;
     1625  }
     1626
     1627  private boolean jj_3R_76() {
     1628    if (jj_scan_token(PLUS)) return true;
     1629    if (jj_3R_18()) return true;
     1630    if (jj_3R_52()) return true;
     1631    if (jj_3R_18()) return true;
     1632    return false;
     1633  }
     1634
     1635  private boolean jj_3R_62() {
     1636    Token xsp;
     1637    if (jj_3R_77()) return true;
     1638    while (true) {
     1639      xsp = jj_scanpos;
     1640      if (jj_3R_77()) { jj_scanpos = xsp; break; }
     1641    }
     1642    return false;
     1643  }
     1644
     1645  private boolean jj_3R_53() {
     1646    Token xsp;
     1647    xsp = jj_scanpos;
     1648    if (jj_3R_61()) {
     1649    jj_scanpos = xsp;
     1650    if (jj_3R_62()) {
     1651    jj_scanpos = xsp;
     1652    if (jj_3R_63()) {
     1653    jj_scanpos = xsp;
     1654    if (jj_3R_64()) {
     1655    jj_scanpos = xsp;
     1656    if (jj_3R_65()) {
     1657    jj_scanpos = xsp;
     1658    if (jj_3R_66()) {
     1659    jj_scanpos = xsp;
     1660    if (jj_3R_67()) {
     1661    jj_scanpos = xsp;
     1662    if (jj_3R_68()) {
     1663    jj_scanpos = xsp;
     1664    if (jj_3R_69()) {
     1665    jj_scanpos = xsp;
     1666    if (jj_3R_70()) {
     1667    jj_scanpos = xsp;
     1668    if (jj_3R_71()) {
     1669    jj_scanpos = xsp;
     1670    if (jj_3R_72()) return true;
     1671    }
     1672    }
     1673    }
     1674    }
     1675    }
     1676    }
     1677    }
     1678    }
     1679    }
     1680    }
     1681    }
     1682    return false;
     1683  }
     1684
     1685  private boolean jj_3R_61() {
     1686    Token xsp;
     1687    if (jj_3R_76()) return true;
     1688    while (true) {
     1689      xsp = jj_scanpos;
     1690      if (jj_3R_76()) { jj_scanpos = xsp; break; }
     1691    }
     1692    return false;
     1693  }
     1694
     1695  private boolean jj_3R_33() {
     1696    if (jj_3R_52()) return true;
     1697    if (jj_3R_18()) return true;
     1698    Token xsp;
     1699    xsp = jj_scanpos;
     1700    if (jj_3R_53()) jj_scanpos = xsp;
     1701    return false;
     1702  }
     1703
     1704  private boolean jj_3R_32() {
     1705    if (jj_scan_token(MINUS)) return true;
     1706    if (jj_3R_18()) return true;
     1707    if (jj_3R_52()) return true;
     1708    if (jj_3R_18()) return true;
     1709    return false;
     1710  }
     1711
     1712  private boolean jj_3R_31() {
     1713    if (jj_scan_token(EXCLAMATION)) return true;
     1714    if (jj_3R_18()) return true;
     1715    if (jj_3R_52()) return true;
     1716    if (jj_3R_18()) return true;
     1717    return false;
     1718  }
     1719
     1720  private boolean jj_3_6() {
     1721    if (jj_3R_19()) return true;
     1722    Token xsp;
     1723    xsp = jj_scanpos;
     1724    if (jj_scan_token(27)) {
     1725    jj_scanpos = xsp;
     1726    if (jj_scan_token(13)) return true;
     1727    }
     1728    return false;
     1729  }
     1730
     1731  private boolean jj_3R_19() {
     1732    Token xsp;
     1733    xsp = jj_scanpos;
     1734    if (jj_3R_31()) {
     1735    jj_scanpos = xsp;
     1736    if (jj_3R_32()) {
     1737    jj_scanpos = xsp;
     1738    if (jj_3R_33()) return true;
     1739    }
     1740    }
     1741    return false;
     1742  }
     1743
     1744  private boolean jj_3_5() {
     1745    if (jj_3R_17()) return true;
     1746    if (jj_3R_18()) return true;
     1747    Token xsp;
     1748    xsp = jj_scanpos;
     1749    if (jj_scan_token(27)) {
     1750    jj_scanpos = xsp;
     1751    if (jj_scan_token(13)) return true;
     1752    }
     1753    return false;
     1754  }
     1755
     1756  private boolean jj_3R_29() {
     1757    if (jj_scan_token(COMMA)) return true;
     1758    if (jj_3R_14()) return true;
     1759    if (jj_3R_28()) return true;
     1760    return false;
     1761  }
     1762
     1763  private boolean jj_3R_48() {
     1764    if (jj_scan_token(LESS)) return true;
     1765    return false;
     1766  }
     1767
     1768  private boolean jj_3R_47() {
     1769    if (jj_scan_token(LESS_EQUAL)) return true;
     1770    return false;
     1771  }
     1772
     1773  private boolean jj_3R_17() {
     1774    if (jj_3R_28()) return true;
     1775    Token xsp;
     1776    if (jj_3R_29()) return true;
     1777    while (true) {
     1778      xsp = jj_scanpos;
     1779      if (jj_3R_29()) { jj_scanpos = xsp; break; }
     1780    }
     1781    return false;
     1782  }
     1783
     1784  private boolean jj_3R_46() {
     1785    if (jj_scan_token(GREATER)) return true;
     1786    return false;
     1787  }
     1788
     1789  private boolean jj_3R_44() {
     1790    if (jj_3R_56()) return true;
     1791    return false;
     1792  }
     1793
     1794  private boolean jj_3R_45() {
     1795    if (jj_scan_token(GREATER_EQUAL)) return true;
     1796    return false;
     1797  }
     1798
     1799  private boolean jj_3R_51() {
     1800    if (jj_scan_token(COMMENT_START)) return true;
     1801    if (jj_scan_token(COMMENT_END)) return true;
     1802    return false;
     1803  }
     1804
     1805  private boolean jj_3R_43() {
     1806    if (jj_3R_49()) return true;
     1807    return false;
     1808  }
     1809
     1810  private boolean jj_3R_74() {
     1811    if (jj_3R_54()) return true;
     1812    return false;
     1813  }
     1814
     1815  private boolean jj_3R_30() {
    11251816    Token xsp;
    11261817    xsp = jj_scanpos;
    11271818    if (jj_scan_token(9)) {
    11281819    jj_scanpos = xsp;
    1129     if (jj_3R_44()) return true;
    1130     }
    1131     return false;
    1132   }
    1133 
    1134   private boolean jj_3R_16() {
     1820    if (jj_3R_51()) return true;
     1821    }
     1822    return false;
     1823  }
     1824
     1825  private boolean jj_3R_25() {
     1826    Token xsp;
     1827    xsp = jj_scanpos;
     1828    if (jj_3R_45()) {
     1829    jj_scanpos = xsp;
     1830    if (jj_3R_46()) {
     1831    jj_scanpos = xsp;
     1832    if (jj_3R_47()) {
     1833    jj_scanpos = xsp;
     1834    if (jj_3R_48()) return true;
     1835    }
     1836    }
     1837    }
     1838    if (jj_3R_14()) return true;
     1839    if (jj_3R_49()) return true;
     1840    return false;
     1841  }
     1842
     1843  private boolean jj_3R_18() {
    11351844    Token xsp;
    11361845    while (true) {
    11371846      xsp = jj_scanpos;
    1138       if (jj_3R_26()) { jj_scanpos = xsp; break; }
    1139     }
    1140     return false;
    1141   }
    1142 
    1143   private boolean jj_3R_37() {
     1847      if (jj_3R_30()) { jj_scanpos = xsp; break; }
     1848    }
     1849    return false;
     1850  }
     1851
     1852  private boolean jj_3_3() {
     1853    if (jj_3R_16()) return true;
     1854    return false;
     1855  }
     1856
     1857  private boolean jj_3R_42() {
    11441858    if (jj_scan_token(STAR)) return true;
    11451859    if (jj_scan_token(EQUAL)) return true;
    1146     if (jj_3R_49()) return true;
    1147     return false;
    1148   }
    1149 
    1150   private boolean jj_3R_51() {
    1151     if (jj_3R_49()) return true;
    1152     return false;
    1153   }
    1154 
    1155   private boolean jj_3R_36() {
    1156     if (jj_scan_token(DOLLAR)) return true;
    1157     if (jj_scan_token(EQUAL)) return true;
    1158     if (jj_3R_49()) return true;
    1159     return false;
    1160   }
    1161 
    1162   private boolean jj_3R_35() {
    1163     if (jj_scan_token(CARET)) return true;
    1164     if (jj_scan_token(EQUAL)) return true;
    1165     if (jj_3R_49()) return true;
    1166     return false;
    1167   }
    1168 
    1169   private boolean jj_3R_23() {
    1170     Token xsp;
    1171     xsp = jj_scanpos;
    1172     if (jj_3R_38()) {
    1173     jj_scanpos = xsp;
    1174     if (jj_3R_39()) {
    1175     jj_scanpos = xsp;
    1176     if (jj_3R_40()) {
    1177     jj_scanpos = xsp;
    1178     if (jj_3R_41()) return true;
    1179     }
    1180     }
    1181     }
    1182     if (jj_3R_42()) return true;
    1183     return false;
    1184   }
    1185 
    1186   private boolean jj_3R_50() {
    1187     if (jj_scan_token(TILDE)) return true;
    1188     if (jj_3R_70()) return true;
    1189     return false;
    1190   }
    1191 
    1192   private boolean jj_3R_34() {
    1193     if (jj_scan_token(TILDE)) return true;
    1194     if (jj_scan_token(EQUAL)) return true;
    1195     if (jj_3R_49()) return true;
    1196     return false;
    1197   }
    1198 
    1199   private boolean jj_3R_43() {
    1200     Token xsp;
    1201     xsp = jj_scanpos;
    1202     if (jj_scan_token(9)) jj_scanpos = xsp;
    1203     return false;
    1204   }
    1205 
    1206   private boolean jj_3R_53() {
    1207     if (jj_3R_24()) return true;
    1208     return false;
    1209   }
    1210 
    1211   private boolean jj_3R_33() {
    1212     if (jj_scan_token(EQUAL)) return true;
    1213     Token xsp;
    1214     xsp = jj_scanpos;
    1215     if (jj_3R_50()) {
    1216     jj_scanpos = xsp;
    1217     if (jj_3R_51()) return true;
    1218     }
    1219     return false;
    1220   }
    1221 
    1222   private boolean jj_3R_32() {
    1223     if (jj_scan_token(EXCLAMATION)) return true;
    1224     if (jj_scan_token(EQUAL)) return true;
    1225     if (jj_3R_49()) return true;
    1226     return false;
    1227   }
    1228 
    1229   private boolean jj_3R_70() {
    1230     if (jj_scan_token(REGEX)) return true;
    1231     return false;
    1232   }
    1233 
    1234   private boolean jj_3R_22() {
    1235     Token xsp;
    1236     xsp = jj_scanpos;
    1237     if (jj_3R_32()) {
    1238     jj_scanpos = xsp;
    1239     if (jj_3R_33()) {
    1240     jj_scanpos = xsp;
    1241     if (jj_3R_34()) {
    1242     jj_scanpos = xsp;
    1243     if (jj_3R_35()) {
    1244     jj_scanpos = xsp;
    1245     if (jj_3R_36()) {
    1246     jj_scanpos = xsp;
    1247     if (jj_3R_37()) return true;
    1248     }
    1249     }
    1250     }
    1251     }
    1252     }
    1253     return false;
    1254   }
    1255 
    1256   private boolean jj_3R_48() {
    1257     if (jj_scan_token(COLON)) return true;
    1258     if (jj_scan_token(IDENT)) return true;
    1259     return false;
    1260   }
    1261 
    1262   private boolean jj_3R_49() {
    1263     Token xsp;
    1264     xsp = jj_scanpos;
    1265     if (jj_3R_68()) {
    1266     jj_scanpos = xsp;
    1267     if (jj_3R_69()) return true;
    1268     }
    1269     return false;
    1270   }
    1271 
    1272   private boolean jj_3R_68() {
    1273     if (jj_scan_token(IDENT)) return true;
    1274     return false;
    1275   }
    1276 
    1277   private boolean jj_3R_14() {
    1278     if (jj_3R_20()) return true;
    1279     Token xsp;
    1280     xsp = jj_scanpos;
    1281     if (jj_3R_22()) {
    1282     jj_scanpos = xsp;
    1283     if (jj_3R_23()) return true;
    1284     }
    1285     return false;
    1286   }
    1287 
    1288   private boolean jj_3R_80() {
    1289     if (jj_scan_token(HEXCOLOR)) return true;
    1290     return false;
    1291   }
    1292 
    1293   private boolean jj_3R_47() {
    1294     if (jj_scan_token(STRING)) return true;
    1295     return false;
    1296   }
    1297 
    1298   private boolean jj_3R_79() {
    1299     if (jj_3R_24()) return true;
    1300     return false;
    1301   }
    1302 
    1303   private boolean jj_3R_78() {
    1304     if (jj_scan_token(PLUS)) return true;
    1305     if (jj_3R_24()) return true;
    1306     return false;
    1307   }
    1308 
    1309   private boolean jj_3R_71() {
    1310     Token xsp;
    1311     xsp = jj_scanpos;
    1312     if (jj_3R_77()) {
    1313     jj_scanpos = xsp;
    1314     if (jj_3R_78()) {
    1315     jj_scanpos = xsp;
    1316     if (jj_3R_79()) {
    1317     jj_scanpos = xsp;
    1318     if (jj_3R_80()) return true;
    1319     }
    1320     }
    1321     }
    1322     return false;
    1323   }
    1324 
    1325   private boolean jj_3R_77() {
    1326     if (jj_3R_49()) return true;
    1327     return false;
    1328   }
    1329 
    1330   private boolean jj_3R_21() {
    1331     if (jj_scan_token(QUESTION)) return true;
    1332     return false;
    1333   }
    1334 
    1335   private boolean jj_3R_42() {
    1336     Token xsp;
    1337     xsp = jj_scanpos;
    1338     if (jj_3R_52()) {
    1339     jj_scanpos = xsp;
    1340     if (jj_3R_53()) return true;
    1341     }
    1342     return false;
    1343   }
    1344 
    1345   private boolean jj_3R_52() {
    1346     if (jj_scan_token(MINUS)) return true;
    1347     if (jj_3R_24()) return true;
    1348     return false;
    1349   }
    1350 
    1351   private boolean jj_3R_19() {
    1352     if (jj_scan_token(EXCLAMATION)) return true;
    1353     return false;
    1354   }
    1355 
    1356   private boolean jj_3R_13() {
    1357     Token xsp;
    1358     xsp = jj_scanpos;
    1359     if (jj_3R_19()) jj_scanpos = xsp;
    1360     if (jj_3R_20()) return true;
    1361     xsp = jj_scanpos;
    1362     if (jj_3R_21()) jj_scanpos = xsp;
    1363     return false;
    1364   }
    1365 
    1366   private boolean jj_3R_81() {
    1367     if (jj_scan_token(COMMA)) return true;
    1368     if (jj_3R_16()) return true;
    1369     if (jj_3R_17()) return true;
    1370     return false;
    1371   }
    1372 
    1373   private boolean jj_3R_24() {
    1374     Token xsp;
    1375     xsp = jj_scanpos;
    1376     if (jj_scan_token(3)) {
    1377     jj_scanpos = xsp;
    1378     if (jj_scan_token(2)) return true;
    1379     }
    1380     return false;
    1381   }
    1382 
    1383   private boolean jj_3R_31() {
    1384     if (jj_scan_token(IDENT)) return true;
    1385     Token xsp;
    1386     while (true) {
    1387       xsp = jj_scanpos;
    1388       if (jj_3R_48()) { jj_scanpos = xsp; break; }
    1389     }
    1390     return false;
    1391   }
    1392 
    1393   private boolean jj_3R_30() {
    1394     if (jj_3R_47()) return true;
    1395     return false;
    1396   }
    1397 
    1398   private boolean jj_3R_20() {
    1399     Token xsp;
    1400     xsp = jj_scanpos;
    1401     if (jj_3R_30()) {
    1402     jj_scanpos = xsp;
    1403     if (jj_3R_31()) return true;
    1404     }
    1405     return false;
    1406   }
    1407 
    1408   private boolean jj_3R_76() {
    1409     if (jj_3R_17()) return true;
    1410     Token xsp;
    1411     while (true) {
    1412       xsp = jj_scanpos;
    1413       if (jj_3R_81()) { jj_scanpos = xsp; break; }
    1414     }
    1415     return false;
    1416   }
    1417 
    1418   private boolean jj_3_2() {
    1419     if (jj_3R_14()) return true;
    1420     if (jj_scan_token(RSQUARE)) return true;
    1421     return false;
    1422   }
    1423 
    1424   private boolean jj_3_1() {
    1425     if (jj_3R_13()) return true;
    1426     if (jj_scan_token(RSQUARE)) return true;
    1427     return false;
    1428   }
    1429 
    1430   private boolean jj_3R_18() {
    1431     if (jj_scan_token(IDENT)) return true;
    1432     if (jj_3R_16()) return true;
    1433     if (jj_scan_token(LPAR)) return true;
    1434     if (jj_3R_16()) return true;
    1435     Token xsp;
    1436     xsp = jj_scanpos;
    1437     if (jj_3R_76()) jj_scanpos = xsp;
    1438     if (jj_scan_token(RPAR)) return true;
    1439     return false;
    1440   }
    1441 
    1442   private boolean jj_3R_55() {
    1443     if (jj_scan_token(LPAR)) return true;
    1444     if (jj_3R_16()) return true;
    1445     if (jj_3R_17()) return true;
    1446     if (jj_scan_token(RPAR)) return true;
    1447     return false;
    1448   }
    1449 
    1450   private boolean jj_3R_54() {
    1451     if (jj_3R_71()) return true;
    1452     return false;
    1453   }
    1454 
    1455   private boolean jj_3_5() {
    1456     if (jj_3R_18()) return true;
    1457     return false;
    1458   }
    1459 
    1460   private boolean jj_3R_45() {
    1461     Token xsp;
    1462     xsp = jj_scanpos;
    1463     if (jj_3_5()) {
    1464     jj_scanpos = xsp;
    1465     if (jj_3R_54()) {
    1466     jj_scanpos = xsp;
    1467     if (jj_3R_55()) return true;
    1468     }
    1469     }
    1470     return false;
    1471   }
    1472 
    1473   private boolean jj_3R_67() {
    1474     if (jj_scan_token(QUESTION)) return true;
    1475     if (jj_3R_16()) return true;
    1476     if (jj_3R_45()) return true;
    1477     if (jj_3R_16()) return true;
    1478     if (jj_scan_token(COLON)) return true;
    1479     if (jj_3R_16()) return true;
    1480     if (jj_3R_45()) return true;
    1481     if (jj_3R_16()) return true;
    1482     return false;
    1483   }
    1484 
    1485   private boolean jj_3R_66() {
    1486     if (jj_scan_token(PIPE)) return true;
    1487     if (jj_scan_token(PIPE)) return true;
    1488     if (jj_3R_16()) return true;
    1489     if (jj_3R_45()) return true;
    1490     if (jj_3R_16()) return true;
    1491     return false;
    1492   }
    1493 
    1494   private boolean jj_3R_65() {
    1495     if (jj_scan_token(AMPERSAND)) return true;
    1496     if (jj_scan_token(AMPERSAND)) return true;
    1497     if (jj_3R_16()) return true;
    1498     if (jj_3R_45()) return true;
    1499     if (jj_3R_16()) return true;
    1500     return false;
    1501   }
    1502 
    1503   private boolean jj_3R_64() {
    1504     if (jj_scan_token(LESS)) return true;
    1505     if (jj_3R_16()) return true;
    1506     if (jj_3R_45()) return true;
    1507     if (jj_3R_16()) return true;
    1508     return false;
    1509   }
    1510 
    1511   private boolean jj_3R_63() {
    1512     if (jj_scan_token(EQUAL)) return true;
    1513     Token xsp;
    1514     xsp = jj_scanpos;
    1515     if (jj_scan_token(22)) jj_scanpos = xsp;
    1516     if (jj_3R_16()) return true;
    1517     if (jj_3R_45()) return true;
    1518     if (jj_3R_16()) return true;
    1519     return false;
    1520   }
    1521 
    1522   private boolean jj_3R_62() {
    1523     if (jj_scan_token(GREATER)) return true;
    1524     if (jj_3R_16()) return true;
    1525     if (jj_3R_45()) return true;
    1526     if (jj_3R_16()) return true;
    1527     return false;
    1528   }
    1529 
    1530   private boolean jj_3R_61() {
    1531     if (jj_scan_token(LESS_EQUAL)) return true;
    1532     if (jj_3R_16()) return true;
    1533     if (jj_3R_45()) return true;
    1534     if (jj_3R_16()) return true;
    1535     return false;
    1536   }
    1537 
    1538   private boolean jj_3R_60() {
    1539     if (jj_scan_token(GREATER_EQUAL)) return true;
    1540     if (jj_3R_16()) return true;
    1541     if (jj_3R_45()) return true;
    1542     if (jj_3R_16()) return true;
    1543     return false;
    1544   }
    1545 
    1546   private boolean jj_3R_75() {
    1547     if (jj_scan_token(SLASH)) return true;
    1548     if (jj_3R_16()) return true;
    1549     if (jj_3R_45()) return true;
    1550     if (jj_3R_16()) return true;
    1551     return false;
    1552   }
    1553 
    1554   private boolean jj_3R_59() {
    1555     Token xsp;
    1556     if (jj_3R_75()) return true;
    1557     while (true) {
    1558       xsp = jj_scanpos;
    1559       if (jj_3R_75()) { jj_scanpos = xsp; break; }
    1560     }
    1561     return false;
    1562   }
    1563 
    1564   private boolean jj_3R_74() {
    1565     if (jj_scan_token(MINUS)) return true;
    1566     if (jj_3R_16()) return true;
    1567     if (jj_3R_45()) return true;
    1568     if (jj_3R_16()) return true;
    1569     return false;
    1570   }
    1571 
    1572   private boolean jj_3R_58() {
    1573     Token xsp;
    1574     if (jj_3R_74()) return true;
    1575     while (true) {
    1576       xsp = jj_scanpos;
    1577       if (jj_3R_74()) { jj_scanpos = xsp; break; }
    1578     }
    1579     return false;
    1580   }
    1581 
    1582   private boolean jj_3R_73() {
    1583     if (jj_scan_token(STAR)) return true;
    1584     if (jj_3R_16()) return true;
    1585     if (jj_3R_45()) return true;
    1586     if (jj_3R_16()) return true;
    1587     return false;
    1588   }
    1589 
    1590   private boolean jj_3R_57() {
    1591     Token xsp;
    1592     if (jj_3R_73()) return true;
    1593     while (true) {
    1594       xsp = jj_scanpos;
    1595       if (jj_3R_73()) { jj_scanpos = xsp; break; }
    1596     }
    1597     return false;
    1598   }
    1599 
    1600   private boolean jj_3R_72() {
    1601     if (jj_scan_token(PLUS)) return true;
    1602     if (jj_3R_16()) return true;
    1603     if (jj_3R_45()) return true;
    1604     if (jj_3R_16()) return true;
    1605     return false;
    1606   }
    1607 
    1608   private boolean jj_3R_46() {
    1609     Token xsp;
    1610     xsp = jj_scanpos;
    1611     if (jj_3R_56()) {
    1612     jj_scanpos = xsp;
    1613     if (jj_3R_57()) {
    1614     jj_scanpos = xsp;
    1615     if (jj_3R_58()) {
    1616     jj_scanpos = xsp;
    1617     if (jj_3R_59()) {
    1618     jj_scanpos = xsp;
    1619     if (jj_3R_60()) {
    1620     jj_scanpos = xsp;
    1621     if (jj_3R_61()) {
    1622     jj_scanpos = xsp;
    1623     if (jj_3R_62()) {
    1624     jj_scanpos = xsp;
    1625     if (jj_3R_63()) {
    1626     jj_scanpos = xsp;
    1627     if (jj_3R_64()) {
    1628     jj_scanpos = xsp;
    1629     if (jj_3R_65()) {
    1630     jj_scanpos = xsp;
    1631     if (jj_3R_66()) {
    1632     jj_scanpos = xsp;
    1633     if (jj_3R_67()) return true;
    1634     }
    1635     }
    1636     }
    1637     }
    1638     }
    1639     }
    1640     }
    1641     }
    1642     }
    1643     }
    1644     }
    1645     return false;
    1646   }
    1647 
    1648   private boolean jj_3R_56() {
    1649     Token xsp;
    1650     if (jj_3R_72()) return true;
    1651     while (true) {
    1652       xsp = jj_scanpos;
    1653       if (jj_3R_72()) { jj_scanpos = xsp; break; }
    1654     }
    1655     return false;
    1656   }
    1657 
    1658   private boolean jj_3R_29() {
    1659     if (jj_3R_45()) return true;
    1660     if (jj_3R_16()) return true;
    1661     Token xsp;
    1662     xsp = jj_scanpos;
    1663     if (jj_3R_46()) jj_scanpos = xsp;
    1664     return false;
    1665   }
    1666 
    1667   private boolean jj_3R_28() {
    1668     if (jj_scan_token(MINUS)) return true;
    1669     if (jj_3R_16()) return true;
    1670     if (jj_3R_45()) return true;
    1671     if (jj_3R_16()) return true;
    1672     return false;
    1673   }
    1674 
    1675   private boolean jj_3R_27() {
    1676     if (jj_scan_token(EXCLAMATION)) return true;
    1677     if (jj_3R_16()) return true;
    1678     if (jj_3R_45()) return true;
    1679     if (jj_3R_16()) return true;
    1680     return false;
    1681   }
    1682 
    1683   private boolean jj_3_4() {
    1684     if (jj_3R_17()) return true;
    1685     Token xsp;
    1686     xsp = jj_scanpos;
    1687     if (jj_scan_token(27)) {
    1688     jj_scanpos = xsp;
    1689     if (jj_scan_token(13)) return true;
    1690     }
    1691     return false;
    1692   }
    1693 
    1694   private boolean jj_3R_17() {
    1695     Token xsp;
    1696     xsp = jj_scanpos;
    1697     if (jj_3R_27()) {
    1698     jj_scanpos = xsp;
    1699     if (jj_3R_28()) {
    1700     jj_scanpos = xsp;
    1701     if (jj_3R_29()) return true;
    1702     }
    1703     }
    1704     return false;
    1705   }
    1706 
    1707   private boolean jj_3_3() {
    1708     if (jj_3R_15()) return true;
    1709     if (jj_3R_16()) return true;
    1710     Token xsp;
    1711     xsp = jj_scanpos;
    1712     if (jj_scan_token(27)) {
    1713     jj_scanpos = xsp;
    1714     if (jj_scan_token(13)) return true;
    1715     }
    1716     return false;
    1717   }
    1718 
    1719   private boolean jj_3R_25() {
    1720     if (jj_scan_token(COMMA)) return true;
    1721     if (jj_3R_43()) return true;
    1722     if (jj_3R_24()) return true;
    1723     return false;
    1724   }
    1725 
    1726   private boolean jj_3R_15() {
    1727     if (jj_3R_24()) return true;
    1728     Token xsp;
    1729     if (jj_3R_25()) return true;
    1730     while (true) {
    1731       xsp = jj_scanpos;
    1732       if (jj_3R_25()) { jj_scanpos = xsp; break; }
    1733     }
    1734     return false;
    1735   }
    1736 
    1737   private boolean jj_3R_41() {
    1738     if (jj_scan_token(LESS)) return true;
    1739     return false;
    1740   }
    1741 
    1742   private boolean jj_3R_44() {
    1743     if (jj_scan_token(COMMENT_START)) return true;
    1744     if (jj_scan_token(COMMENT_END)) return true;
    1745     return false;
    1746   }
    1747 
    1748   private boolean jj_3R_40() {
    1749     if (jj_scan_token(LESS_EQUAL)) return true;
    1750     return false;
    1751   }
    1752 
    1753   private boolean jj_3R_39() {
    1754     if (jj_scan_token(GREATER)) return true;
    1755     return false;
    1756   }
    1757 
    1758   private boolean jj_3R_38() {
    1759     if (jj_scan_token(GREATER_EQUAL)) return true;
     1860    if (jj_3R_56()) return true;
    17601861    return false;
    17611862  }
     
    17721873  private int jj_la;
    17731874  private int jj_gen;
    1774   final private int[] jj_la1 = new int[45];
     1875  final private int[] jj_la1 = new int[46];
    17751876  static private int[] jj_la1_0;
    17761877  static private int[] jj_la1_1;
     
    17801881   }
    17811882   private static void jj_la1_init_0() {
    1782       jj_la1_0 = new int[] {0xc,0xc,0x12,0x200,0x200,0x200,0x10000000,0x402,0x10000000,0x300000,0x300000,0x402,0x40000000,0x2804000,0x2804000,0x4000000,0x4,0x0,0x4,0x8081011e,0x2000000,0x12,0x800000,0x0,0x1000012,0x1c00400,0x3c0000,0x1fc0400,0x800000,0x402,0x2,0x8002000,0x8002000,0x80000000,0x400,0x0,0x800,0x400000,0xa07c0c00,0xa07c0c00,0x8081011e,0x8001011e,0x10000000,0x8081011e,0x8000011e,};
     1883      jj_la1_0 = new int[] {0x4,0xc,0xc,0x12,0x200,0x200,0x200,0x10000000,0x402,0x10000000,0x300000,0x300000,0x402,0x40000000,0x2804000,0x2804000,0x4000000,0x4,0x0,0x4,0x8081011e,0x2000000,0x12,0x800000,0x0,0x1c00400,0x1e,0x3c0000,0x1fc0400,0x800000,0x402,0x2,0x8002000,0x8002000,0x80000000,0x400,0x0,0x800,0x400000,0xa07c0c00,0xa07c0c00,0x8081011e,0x8001011e,0x10000000,0x8081011e,0x8000011e,};
    17831884   }
    17841885   private static void jj_la1_init_1() {
    1785       jj_la1_1 = new int[] {0x0,0x1,0x0,0x0,0x20,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x1,0x0,0x0,0x0,0x4,0x0,0x18,0x0,0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x7,0x7,0x1,0x0,0x0,0x1,0x0,};
     1886      jj_la1_1 = new int[] {0x1,0x0,0x1,0x0,0x0,0x20,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x1,0x0,0x0,0x0,0x4,0x18,0x1,0x0,0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x7,0x7,0x1,0x0,0x0,0x1,0x0,};
    17861887   }
    1787   final private JJCalls[] jj_2_rtns = new JJCalls[5];
     1888  final private JJCalls[] jj_2_rtns = new JJCalls[7];
    17881889  private boolean jj_rescan = false;
    17891890  private int jj_gc = 0;
     
    18001901    jj_ntk = -1;
    18011902    jj_gen = 0;
    1802     for (int i = 0; i < 45; i++) jj_la1[i] = -1;
     1903    for (int i = 0; i < 46; i++) jj_la1[i] = -1;
    18031904    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
    18041905  }
     
    18151916    jj_ntk = -1;
    18161917    jj_gen = 0;
    1817     for (int i = 0; i < 45; i++) jj_la1[i] = -1;
     1918    for (int i = 0; i < 46; i++) jj_la1[i] = -1;
    18181919    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
    18191920  }
     
    18261927    jj_ntk = -1;
    18271928    jj_gen = 0;
    1828     for (int i = 0; i < 45; i++) jj_la1[i] = -1;
     1929    for (int i = 0; i < 46; i++) jj_la1[i] = -1;
    18291930    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
    18301931  }
     
    18371938    jj_ntk = -1;
    18381939    jj_gen = 0;
    1839     for (int i = 0; i < 45; i++) jj_la1[i] = -1;
     1940    for (int i = 0; i < 46; i++) jj_la1[i] = -1;
    18401941    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
    18411942  }
     
    18471948    jj_ntk = -1;
    18481949    jj_gen = 0;
    1849     for (int i = 0; i < 45; i++) jj_la1[i] = -1;
     1950    for (int i = 0; i < 46; i++) jj_la1[i] = -1;
    18501951    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
    18511952  }
     
    18571958    jj_ntk = -1;
    18581959    jj_gen = 0;
    1859     for (int i = 0; i < 45; i++) jj_la1[i] = -1;
     1960    for (int i = 0; i < 46; i++) jj_la1[i] = -1;
    18601961    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
    18611962  }
     
    19742075      jj_kind = -1;
    19752076    }
    1976     for (int i = 0; i < 45; i++) {
     2077    for (int i = 0; i < 46; i++) {
    19772078      if (jj_la1[i] == jj_gen) {
    19782079        for (int j = 0; j < 32; j++) {
     
    20132114  private void jj_rescan_token() {
    20142115    jj_rescan = true;
    2015     for (int i = 0; i < 5; i++) {
     2116    for (int i = 0; i < 7; i++) {
    20162117    try {
    20172118      JJCalls p = jj_2_rtns[i];
     
    20252126            case 3: jj_3_4(); break;
    20262127            case 4: jj_3_5(); break;
     2128            case 5: jj_3_6(); break;
     2129            case 6: jj_3_7(); break;
    20272130          }
    20282131        }
  • trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/parser/MapCSSParser.jj

    r3902 r3911  
    119119}
    120120
     121int int_() :
     122{
     123    int i;
     124}
     125{
     126    <MINUS> i=uint() { return -i; } | i=uint() { return i; }
     127}
     128
    121129float ufloat() :
    122130{
     
    291299}
    292300{
    293     <LSQUARE>
    294     (
    295         LOOKAHEAD( simple_key_condition() <RSQUARE> )
    296             c=simple_key_condition() <RSQUARE> { return c; }
     301    <LSQUARE> s()
     302    (
     303        LOOKAHEAD( simple_key_condition() s() <RSQUARE> )
     304            c=simple_key_condition() s() <RSQUARE> { return c; }
    297305        |
    298         LOOKAHEAD( simple_key_value_condition() <RSQUARE> )
    299             c=simple_key_value_condition() <RSQUARE> { return c; }
     306        LOOKAHEAD( simple_key_value_condition() s() <RSQUARE> )
     307            c=simple_key_value_condition() s() <RSQUARE> { return c; }
    300308        |
    301309            e=expression() <RSQUARE> { return new Condition.ExpressionCondition(e); }
     
    332340    String val;
    333341    float f;
     342    int i;
    334343    Condition.Op op;
    335344}
    336345{
    337     key=tag_key()
    338     (
     346    key=tag_key() s()
     347    (
     348        LOOKAHEAD(2)
     349            <EQUAL> <TILDE> { op=Condition.Op.REGEX; } s() val=regex()
     350        |
    339351            (
    340                     <EXCLAMATION> <EQUAL> { op=Condition.Op.NEQ; } val=string_or_ident()
     352                    <EXCLAMATION> <EQUAL> { op=Condition.Op.NEQ; }
    341353                |
    342354                    <EQUAL> { op=Condition.Op.EQ; }
    343                     (
    344                             <TILDE> { op=Condition.Op.REGEX; }
    345                             val=regex()
    346                         |
    347                             val=string_or_ident()
    348                     )
    349355                |
    350356                    <TILDE> <EQUAL> { op=Condition.Op.ONE_OF; } val=string_or_ident()
     
    356362                    <STAR> <EQUAL> { op=Condition.Op.CONTAINS; } val=string_or_ident()
    357363            )
    358             { return new Condition.KeyValueCondition(key, val, op); }
     364            s()
     365            (
     366                LOOKAHEAD(2)
     367                        i=int_() { val=Integer.toString(i); }
     368                    |
     369                        f=float_() { val=Float.toString(f); }
     370                    |
     371                        val=string_or_ident()
     372            )
    359373        |
    360374            (
     
    367381                    <LESS> { op=Condition.Op.LESS; }
    368382            )
    369             f=float_()
    370             { return new Condition.KeyValueCondition(key, Float.toString(f), op); }
     383            s()
     384            f=float_() { val=Float.toString(f); }
    371385    )
     386    { return new Condition.KeyValueCondition(key, val, op); }
    372387}
    373388
Note: See TracChangeset for help on using the changeset viewer.