⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sacparser.java

📁 cssparser -- CSS 的语法解析器。采用java语言编写。可用在服务端生成页面。
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
      }      break;    default:      jj_la1[52] = jj_gen;      jj_consume_token(-1);      throw new ParseException();    }    {if (true) return c;}    throw new Error("Missing return statement in function");  }//// unary_operator//   : '-' | '+'//   ;//  final public char unaryOperator() throws ParseException {    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {    case MINUS:      jj_consume_token(MINUS);              {if (true) return '-';}      break;    case PLUS:      jj_consume_token(PLUS);                                       {if (true) return '+';}      break;    default:      jj_la1[53] = jj_gen;      jj_consume_token(-1);      throw new ParseException();    }    throw new Error("Missing return statement in function");  }//// property//   : IDENT S*//   ;//  final public String property() throws ParseException {    Token t;    t = jj_consume_token(IDENT);    label_33:    while (true) {      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {      case S:        ;        break;      default:        jj_la1[54] = jj_gen;        break label_33;      }      jj_consume_token(S);    }      {if (true) return unescape(t.image);}    throw new Error("Missing return statement in function");  }//// ruleset//   : selector [ ',' S* selector ]*//     '{' S* declaration [ ';' S* declaration ]* '}' S*//   ;//  final public void styleRule() throws ParseException {    SelectorList selList = null;    boolean start = false;    boolean noError = true;    try {      selList = selectorList();      jj_consume_token(LBRACE);      label_34:      while (true) {        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {        case S:          ;          break;        default:          jj_la1[55] = jj_gen;          break label_34;        }        jj_consume_token(S);      }            start = true;            _docHandler.startSelector(selList);      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {      case IDENT:        declaration();        break;      default:        jj_la1[56] = jj_gen;        ;      }      label_35:      while (true) {        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {        case SEMICOLON:          ;          break;        default:          jj_la1[57] = jj_gen;          break label_35;        }        jj_consume_token(SEMICOLON);        label_36:        while (true) {          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {          case S:            ;            break;          default:            jj_la1[58] = jj_gen;            break label_36;          }          jj_consume_token(S);        }        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {        case IDENT:          declaration();          break;        default:          jj_la1[59] = jj_gen;          ;        }      }      jj_consume_token(RBRACE);    } catch (ParseException e) {//        System.err.println("Exception in styleRule()");//        System.err.println(e.getMessage());        noError = false;        error_skipblock();    } finally {        if (start) {            _docHandler.endSelector(selList);        }    }  }  final public SelectorList selectorList() throws ParseException {    SelectorListImpl selList = new SelectorListImpl();    Selector sel;    try {      sel = selector();      label_37:      while (true) {        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {        case COMMA:          ;          break;        default:          jj_la1[60] = jj_gen;          break label_37;        }        jj_consume_token(COMMA);        label_38:        while (true) {          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {          case S:            ;            break;          default:            jj_la1[61] = jj_gen;            break label_38;          }          jj_consume_token(S);        }                             selList.add(sel);        sel = selector();      }            selList.add(sel);            {if (true) return selList;}    } catch (ParseException e) {        System.err.println("Exception in selectorList()");    }    throw new Error("Missing return statement in function");  }//// selector//   : simple_selector [ combinator simple_selector ]*//   ;//  final public Selector selector() throws ParseException {    Selector sel;    char comb;    try {      sel = simpleSelector(null, ' ');      label_39:      while (true) {        if (jj_2_2(2)) {          ;        } else {          break label_39;        }        comb = combinator();        sel = simpleSelector(sel, comb);      }      label_40:      while (true) {        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {        case S:          ;          break;        default:          jj_la1[62] = jj_gen;          break label_40;        }        jj_consume_token(S);      }            {if (true) return sel;}    } catch (ParseException e) {        skipSelector();    }    throw new Error("Missing return statement in function");  }//// simple_selector//   : element_name? [ HASH | class | attrib | pseudo ]* S*//   ;//  final public Selector simpleSelector(Selector sel, char comb) throws ParseException {    SimpleSelector simpleSel = null;    Condition c = null;    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {    case ASTERISK:    case IDENT:      simpleSel = elementName();      label_41:      while (true) {        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {        case DOT:        case COLON:        case LSQUARE:        case HASH:          ;          break;        default:          jj_la1[63] = jj_gen;          break label_41;        }        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {        case HASH:          c = hash(c);          break;        case DOT:          c = _class(c);          break;        case LSQUARE:          c = attrib(c);          break;        case COLON:          c = pseudo(c);          break;        default:          jj_la1[64] = jj_gen;          jj_consume_token(-1);          throw new ParseException();        }      }      break;    case DOT:    case COLON:    case LSQUARE:    case HASH:            simpleSel = _selectorFactory.createElementSelector(null, null);      label_42:      while (true) {        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {        case HASH:          c = hash(c);          break;        case DOT:          c = _class(c);          break;        case LSQUARE:          c = attrib(c);          break;        case COLON:          c = pseudo(c);          break;        default:          jj_la1[65] = jj_gen;          jj_consume_token(-1);          throw new ParseException();        }        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {        case DOT:        case COLON:        case LSQUARE:        case HASH:          ;          break;        default:          jj_la1[66] = jj_gen;          break label_42;        }      }      break;    default:      jj_la1[67] = jj_gen;      jj_consume_token(-1);      throw new ParseException();    }        if (c != null) {            simpleSel = _selectorFactory.createConditionalSelector(simpleSel, c);        }        if (sel != null) {            switch (comb) {            case ' ':                sel = _selectorFactory.createDescendantSelector(sel, simpleSel);                break;            case '+':                sel = _selectorFactory.createDirectAdjacentSelector(sel.getSelectorType(), sel, simpleSel);                break;            case '>':                sel = _selectorFactory.createChildSelector(sel, simpleSel);                break;            }        } else {            sel = simpleSel;        }        {if (true) return sel;}    throw new Error("Missing return statement in function");  }//// class//   : '.' IDENT//   ;//  final public Condition _class(Condition pred) throws ParseException {    Token t;    jj_consume_token(DOT);    t = jj_consume_token(IDENT);        Condition c = _conditionFactory.createClassCondition(null, t.image);        {if (true) return (pred == null) ? c : _conditionFactory.createAndCondition(pred, c);}    throw new Error("Missing return statement in function");  }//// element_name//   : IDENT | '*'//   ;//  final public SimpleSelector elementName() throws ParseException {    Token t;    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {    case IDENT:      t = jj_consume_token(IDENT);    {if (true) return _selectorFactory.createElementSelector(null, unescape(t.image));}      break;    case ASTERISK:      jj_consume_token(ASTERISK);    {if (true) return _selectorFactory.createElementSelector(null, null);}      break;    default:      jj_la1[68] = jj_gen;      jj_consume_token(-1);      throw new ParseException();    }    throw new Error("Missing return statement in function");  }//// attrib//   : '[' S* IDENT S* [ [ '=' | INCLUDES | DASHMATCH ] S*//     [ IDENT | STRING ] S* ]? ']'//   ;//  final public Condition attrib(Condition pred) throws ParseException {    Token t;    String name = null;    String value = null;    int type = 0;    jj_consume_token(LSQUARE);    label_43:    while (true) {      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {      case S:        ;        break;      default:        jj_la1[69] = jj_gen;        break label_43;      }      jj_consume_token(S);    }    t = jj_consume_token(IDENT);                  name = unescape(t.image);    label_44:    while (true) {      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {      case S:        ;        break;      default:        jj_la1[70] = jj_gen;        break label_44;      }      jj_consume_token(S);    }    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {    case EQUALS:    case INCLUDES:    case DASHMATCH:      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {      case EQUALS:        jj_consume_token(EQUALS);                       type = 1;        break;      case INCLUDES:        jj_consume_token(INCLUDES);                         type = 2;        break;      case DASHMATCH:        jj_consume_token(DASHMATCH);                          type = 3;        break;      default:        jj_la1[71] = jj_gen;        jj_consume_token(-1);        throw new ParseException();      }      label_45:      while (true) {        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {        case S:          ;          break;        default:          jj_la1[72] = jj_gen;          break label_45;        }        jj_consume_token(S);      }      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {      case IDENT:        t = jj_consume_token(IDENT);                          value = t.image;        break;      case STRING:        t = jj_consume_token(STRING);                           value = unescape(t.image);        break;      default:        jj_la1[73] = jj_gen;        jj_consume_token(-1);        throw new ParseException();      }      label_46:      while (true) {        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {        case S:          ;          break;        default:          jj_la1[74] = jj_gen;          break label_46;        }        jj_consume_token(S);      }      break;    default:      jj_la1[75] = jj_gen;      ;    }    jj_consume_token(RSQUARE);        Condition c = null;        switch (type) {        case 0:            c = _conditionFactory.createAttributeCondition(name, null, false, null);            break;        case 1:            c = _conditionFactory.createAttributeCondition(name, null, false, value);            break;        case 2:            c = _conditionFactory.createOneOfAttributeCondition(name, null, false, value);            break;        case 3:            c = _conditionFactory.createBeginHyphenAttributeCondition(name, null, false, value);            break;        }        {if (true) return (pred == null) ? c : _conditionFactory.createAndCondition(pred, c);}    throw new Error("Missing return statement in function");  }//// pseudo//   : ':' [ IDENT | FUNCTION S* IDENT S* ')' ]//   ;//  final public Condition pseudo(Condition pred) throws ParseException {    Condition c;    Token t;    String function;    String arg;    jj_consume_token(COLON);    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {    case IDENT:      t = jj_consume_token(IDENT);            // There appears to be an issue here regarding "first-letter" & "first-line"            String s = unescape(t.image);                    c = _conditionFactory.createPseudoClassCondition(null, s);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -