亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? spathparser.jj

?? jakarta-taglibs
?? JJ
字號:
//*********************************************************************
// SPath grammar (JavaCC)
// Author: Shawn Bayern
// For JSTL reference implementation (Apache Jakarta Taglibs)


//*********************************************************************
// Configuration and boilerplate

options {
  STATIC = false;			// we'll need multiple instances
  JAVA_UNICODE_ESCAPE = true;		// XML uses Unicode too
}

PARSER_BEGIN(SPathParser)

package org.apache.taglibs.standard.extra.spath;

import java.util.Vector;

public class SPathParser {

  /** Simple command-line parser interface, primarily for testing. */
  public static void main(String args[]) throws ParseException
  {
    SPathParser parser = new SPathParser(System.in);
    Path p = parser.expression();
    java.util.List l = p.getSteps();

    // output for simple testing
    System.out.println();
    if (p instanceof AbsolutePath)
	System.out.println("Root: /");
    for (int i = 0; i < l.size(); i++) {
	Step s = (Step) l.get(i);
	System.out.print("Step: " + s.getName());
	if (s.isDepthUnlimited())
	    System.out.print("(*)");
	System.out.println();
    }
  }

  // custom constructor to accept a String
  public SPathParser(String x) {
    this(new StringReader(x));
  }

}

PARSER_END(SPathParser)

//*********************************************************************
// Literals

TOKEN :
{
  < LITERAL:
      ("\"" ((~["\"","\\"]) | ("\\" ( ["\\","\""] )))* "\"") |
      ("\'" ((~["\'","\\"]) | ("\\" ( ["\\","\'"] )))* "\'")
  >
}

//*********************************************************************
// Primitive identifiers

TOKEN :
{
  < QNAME:  (<NCNAME><COLON>)? (<NCNAME>) >
 |< NCNAME: (<LETTER> | <UNDERSCORE>) (<NCNAMECHAR>)* >
 |< NSWILDCARD: (<NCNAME><COLON><STAR>) >
 |< #NCNAMECHAR: (<LETTER>|<DIGIT>|<DOT>|<DASH>|<UNDERSCORE>|
		  <COMBINING_CHAR>|<EXTENDER>) >
 |< #LETTER:
      (
	["\u0041"-"\u005A"] | ["\u0061"-"\u007A"] | ["\u00C0"-"\u00D6"] |
	["\u00D8"-"\u00F6"] | ["\u00F8"-"\u00FF"] | ["\u0100"-"\u0131"] |
	["\u0134"-"\u013E"] | ["\u0141"-"\u0148"] | ["\u014A"-"\u017E"] |
	["\u0180"-"\u01C3"] | ["\u01CD"-"\u01F0"] | ["\u01F4"-"\u01F5"] |
	["\u01FA"-"\u0217"] | ["\u0250"-"\u02A8"] | ["\u02BB"-"\u02C1"] | 
	"\u0386" | ["\u0388"-"\u038A"] | "\u038C" | ["\u038E"-"\u03A1"] | 
	["\u03A3"-"\u03CE"] | ["\u03D0"-"\u03D6"] | "\u03DA" | "\u03DC" | 
	"\u03DE" | "\u03E0" | ["\u03E2"-"\u03F3"] | ["\u0401"-"\u040C"] | 
	["\u040E"-"\u044F"] | ["\u0451"-"\u045C"] | ["\u045E"-"\u0481"] | 
	["\u0490"-"\u04C4"] | ["\u04C7"-"\u04C8"] | ["\u04CB"-"\u04CC"] | 
	["\u04D0"-"\u04EB"] | ["\u04EE"-"\u04F5"] | ["\u04F8"-"\u04F9"] | 
	["\u0531"-"\u0556"] | "\u0559" | ["\u0561"-"\u0586"] | 
	["\u05D0"-"\u05EA"] | ["\u05F0"-"\u05F2"] | ["\u0621"-"\u063A"] | 
	["\u0641"-"\u064A"] | ["\u0671"-"\u06B7"] | ["\u06BA"-"\u06BE"] | 
	["\u06C0"-"\u06CE"] | ["\u06D0"-"\u06D3"] | "\u06D5" |
	["\u06E5"-"\u06E6"] | ["\u0905"-"\u0939"] | "\u093D" | 
	["\u0958"-"\u0961"] | ["\u0985"-"\u098C"] | ["\u098F"-"\u0990"] | 
	["\u0993"-"\u09A8"] | ["\u09AA"-"\u09B0"] | "\u09B2" | 
	["\u09B6"-"\u09B9"] | ["\u09DC"-"\u09DD"] | ["\u09DF"-"\u09E1"] | 
	["\u09F0"-"\u09F1"] | ["\u0A05"-"\u0A0A"] | ["\u0A0F"-"\u0A10"] | 
	["\u0A13"-"\u0A28"] | ["\u0A2A"-"\u0A30"] | ["\u0A32"-"\u0A33"] | 
	["\u0A35"-"\u0A36"] | ["\u0A38"-"\u0A39"] | ["\u0A59"-"\u0A5C"] | 
	"\u0A5E" | ["\u0A72"-"\u0A74"] | ["\u0A85"-"\u0A8B"] | "\u0A8D" | 
	["\u0A8F"-"\u0A91"] | ["\u0A93"-"\u0AA8"] | ["\u0AAA"-"\u0AB0"] | 
	["\u0AB2"-"\u0AB3"] | ["\u0AB5"-"\u0AB9"] | "\u0ABD" | "\u0AE0" | 
	["\u0B05"-"\u0B0C"] | ["\u0B0F"-"\u0B10"] | ["\u0B13"-"\u0B28"] | 
	["\u0B2A"-"\u0B30"] | ["\u0B32"-"\u0B33"] | ["\u0B36"-"\u0B39"] | 
	"\u0B3D" | ["\u0B5C"-"\u0B5D"] | ["\u0B5F"-"\u0B61"] | 
	["\u0B85"-"\u0B8A"] | ["\u0B8E"-"\u0B90"] | ["\u0B92"-"\u0B95"] | 
	["\u0B99"-"\u0B9A"] | "\u0B9C" | ["\u0B9E"-"\u0B9F"] | 
	["\u0BA3"-"\u0BA4"] | ["\u0BA8"-"\u0BAA"] | ["\u0BAE"-"\u0BB5"] | 
	["\u0BB7"-"\u0BB9"] | ["\u0C05"-"\u0C0C"] | ["\u0C0E"-"\u0C10"] | 
	["\u0C12"-"\u0C28"] | ["\u0C2A"-"\u0C33"] | ["\u0C35"-"\u0C39"] | 
	["\u0C60"-"\u0C61"] | ["\u0C85"-"\u0C8C"] | ["\u0C8E"-"\u0C90"] | 
	["\u0C92"-"\u0CA8"] | ["\u0CAA"-"\u0CB3"] | ["\u0CB5"-"\u0CB9"] | 
	"\u0CDE" | ["\u0CE0"-"\u0CE1"] | ["\u0D05"-"\u0D0C"] | 
	["\u0D0E"-"\u0D10"] | ["\u0D12"-"\u0D28"] | ["\u0D2A"-"\u0D39"] | 
	["\u0D60"-"\u0D61"] | ["\u0E01"-"\u0E2E"] | "\u0E30" | 
	["\u0E32"-"\u0E33"] | ["\u0E40"-"\u0E45"] | ["\u0E81"-"\u0E82"] | 
	"\u0E84" | ["\u0E87"-"\u0E88"] | "\u0E8A" | "\u0E8D" | 
	["\u0E94"-"\u0E97"] | ["\u0E99"-"\u0E9F"] | ["\u0EA2"-"\u0EA3"] | 
	"\u0EA5" | "\u0EA7" | ["\u0EAA"-"\u0EAB"] | ["\u0EAD"-"\u0EAE"] | 
	"\u0EB0" | ["\u0EB2"-"\u0EB3"] | "\u0EBD" | ["\u0EC0"-"\u0EC4"] | 
	["\u0F40"-"\u0F47"] | ["\u0F49"-"\u0F69"] | ["\u10A0"-"\u10C5"] | 
	["\u10D0"-"\u10F6"] | "\u1100" | ["\u1102"-"\u1103"] | 
	["\u1105"-"\u1107"] | "\u1109" | ["\u110B"-"\u110C"] | 
	["\u110E"-"\u1112"] | "\u113C" | "\u113E" | "\u1140" | "\u114C" | 
	"\u114E" | "\u1150" | ["\u1154"-"\u1155"] | "\u1159" | 
	["\u115F"-"\u1161"] | "\u1163" | "\u1165" | "\u1167" | "\u1169" | 
	["\u116D"-"\u116E"] | ["\u1172"-"\u1173"] | "\u1175" | 
	"\u119E" | "\u11A8" | "\u11AB" | ["\u11AE"-"\u11AF"] | 
	["\u11B7"-"\u11B8"] | "\u11BA" | ["\u11BC"-"\u11C2"] | "\u11EB" | 
	"\u11F0" | "\u11F9" | ["\u1E00"-"\u1E9B"] | ["\u1EA0"-"\u1EF9"] | 
	["\u1F00"-"\u1F15"] | ["\u1F18"-"\u1F1D"] | ["\u1F20"-"\u1F45"] | 
	["\u1F48"-"\u1F4D"] | ["\u1F50"-"\u1F57"] | "\u1F59" | "\u1F5B" | 
	"\u1F5D" | ["\u1F5F"-"\u1F7D"] | ["\u1F80"-"\u1FB4"] | 
	["\u1FB6"-"\u1FBC"] | "\u1FBE" | ["\u1FC2"-"\u1FC4"] |
	["\u1FC6"-"\u1FCC"] | ["\u1FD0"-"\u1FD3"] | ["\u1FD6"-"\u1FDB"] | 
	["\u1FE0"-"\u1FEC"] | ["\u1FF2"-"\u1FF4"] | ["\u1FF6"-"\u1FFC"] | 
	"\u2126" | ["\u212A"-"\u212B"] | "\u212E" | ["\u2180"-"\u2182"] | 
	["\u3041"-"\u3094"] | ["\u30A1"-"\u30FA"] | ["\u3105"-"\u312C"] | 
	["\uAC00"-"\uD7A3"] | ["\u4E00"-"\u9FA5"] | "\u3007" | 
	["\u3021"-"\u3029"] 
      )
  >
 |< #DIGIT:
      (
	["\u0030"-"\u0039"] | ["\u0660"-"\u0669"] | ["\u06F0"-"\u06F9"] |
	["\u0966"-"\u096F"] | ["\u09E6"-"\u09EF"] | ["\u0A66"-"\u0A6F"] |
	["\u0AE6"-"\u0AEF"] | ["\u0B66"-"\u0B6F"] | ["\u0BE7"-"\u0BEF"] |
	["\u0C66"-"\u0C6F"] | ["\u0CE6"-"\u0CEF"] | ["\u0D66"-"\u0D6F"] |
	["\u0E50"-"\u0E59"] | ["\u0ED0"-"\u0ED9"] | ["\u0F20"-"\u0F29"]
      )
  >
 |< #COMBINING_CHAR:
      (
	["\u0300"-"\u0345"] | ["\u0360"-"\u0361"] | ["\u0483"-"\u0486"] |
	["\u0591"-"\u05A1"] | ["\u05A3"-"\u05B9"] | ["\u05BB"-"\u05BD"] | 
	"\u05BF" | ["\u05C1"-"\u05C2"] | "\u05C4" | ["\u064B"-"\u0652"] | 
	"\u0670" | ["\u06D6"-"\u06DC"] | ["\u06DD"-"\u06DF"] | 
	["\u06E0"-"\u06E4"] | ["\u06E7"-"\u06E8"] | ["\u06EA"-"\u06ED"] | 
	["\u0901"-"\u0903"] | "\u093C" | ["\u093E"-"\u094C"] | "\u094D" | 
	["\u0951"-"\u0954"] | ["\u0962"-"\u0963"] | ["\u0981"-"\u0983"] | 
	"\u09BC" | "\u09BE" | "\u09BF" | ["\u09C0"-"\u09C4"] | 
	["\u09C7"-"\u09C8"] | ["\u09CB"-"\u09CD"] | "\u09D7" |
	["\u09E2"-"\u09E3"] | "\u0A02" | "\u0A3C" | "\u0A3E" | "\u0A3F" | 
	["\u0A40"-"\u0A42"] | ["\u0A47"-"\u0A48"] | ["\u0A4B"-"\u0A4D"] | 
	["\u0A70"-"\u0A71"] | ["\u0A81"-"\u0A83"] | "\u0ABC" | 
	["\u0ABE"-"\u0AC5"] | ["\u0AC7"-"\u0AC9"] | ["\u0ACB"-"\u0ACD"] | 
	["\u0B01"-"\u0B03"] | "\u0B3C" | ["\u0B3E"-"\u0B43"] | 
	["\u0B47"-"\u0B48"] | ["\u0B4B"-"\u0B4D"] | ["\u0B56"-"\u0B57"] | 
	["\u0B82"-"\u0B83"] | ["\u0BBE"-"\u0BC2"] | ["\u0BC6"-"\u0BC8"] | 
	["\u0BCA"-"\u0BCD"] | "\u0BD7" | ["\u0C01"-"\u0C03"] | 
	["\u0C3E"-"\u0C44"] | ["\u0C46"-"\u0C48"] | ["\u0C4A"-"\u0C4D"] | 
	["\u0C55"-"\u0C56"] | ["\u0C82"-"\u0C83"] | ["\u0CBE"-"\u0CC4"] | 
	["\u0CC6"-"\u0CC8"] | ["\u0CCA"-"\u0CCD"] | ["\u0CD5"-"\u0CD6"] | 
	["\u0D02"-"\u0D03"] | ["\u0D3E"-"\u0D43"] | ["\u0D46"-"\u0D48"] | 
	["\u0D4A"-"\u0D4D"] | "\u0D57" | "\u0E31" | ["\u0E34"-"\u0E3A"] | 
	["\u0E47"-"\u0E4E"] | "\u0EB1" | ["\u0EB4"-"\u0EB9"] | 
	["\u0EBB"-"\u0EBC"] | ["\u0EC8"-"\u0ECD"] | ["\u0F18"-"\u0F19"] | 
	"\u0F35" | "\u0F37" | "\u0F39" | "\u0F3E" | "\u0F3F" | 
	["\u0F71"-"\u0F84"] | ["\u0F86"-"\u0F8B"] | ["\u0F90"-"\u0F95"] | 
	"\u0F97" | ["\u0F99"-"\u0FAD"] | ["\u0FB1"-"\u0FB7"] | "\u0FB9" | 
	["\u20D0"-"\u20DC"] | "\u20E1" | ["\u302A"-"\u302F"] | "\u3099" | 
	"\u309A"
      ) >
 |< #EXTENDER:
      (
	"\u00B7" | "\u02D0" | "\u02D1" | "\u0387" | "\u0640" | "\u0E46" | 
	"\u0EC6" | "\u3005" | ["\u3031"-"\u3035"] | ["\u309D"-"\u309E"] | 
	["\u30FC"-"\u30FE"]
      ) >
 |< #UNDERSCORE: "_" >
 |< #DOT:        "." >
 |< #DASH:       "-" >
}

//*********************************************************************
// Separators

TOKEN :
{
  < SLASH: "/" >
 |< STAR:  "*" >
 |< COLON: ":" >
 |< START_BRACKET: "[" >
 |< END_BRACKET: "]" >
 |< AT: "@" >
 |< EQUALS: "=" >
}


//*********************************************************************
// Actual SPath grammar

Path expression():
{
  Path expr;
}
{
 ( LOOKAHEAD(absolutePath()) expr = absolutePath() <EOF> 
   | expr = relativePath() <EOF> )
 { return expr; }
}

AbsolutePath absolutePath():
{
  RelativePath relPath;
}
{
 ( <SLASH> relPath = relativePath() )
 { return new AbsolutePath(relPath); }
}

// as an example, we use recursion here to handle a list
RelativePath relativePath():
{
  RelativePath relPath = null;
  Step step;
}
{
 ( step = step() 
   (<SLASH> relPath = relativePath())? )
 {
   return new RelativePath(step, relPath);
 }
}

// as an example, we use inline code here to handle a list
/* 
 * (i'm doing something perhaps unusual here, including the <SLASH>
 * as if it were part of the step.  this mechanism for differentiating
 * '/' from '//' seems most natural, even if it is a bit unconventional.)
 */
Step step():
{
  Token slash = null;
  String nt;
  Vector pl = null;
  Predicate p;
}
{
 (  (slash = <SLASH>)?
    nt = nameTest()
    ( p = predicate()
	{
	  if (pl == null) pl = new Vector();
	  pl.add(p);
	 }
    )*
 )
 {
   // if 'slash != null', then we have '//' versus '/'
   return new Step(slash != null, nt, pl);
 }
}

String nameTest():
{
  Token name;
}
{
 ( name = <STAR> | name = <NSWILDCARD> | name = <QNAME> )
 { return name.toString(); }
}

Predicate predicate():
{
  Predicate p;
}
{
  ( <START_BRACKET> p = attributePredicate() <END_BRACKET> )
  { return p; }
}

Predicate attributePredicate():
{
  Token attname, target;
}
{
  ( <AT> attname = <QNAME> <EQUALS> target = <LITERAL> )
  { return new AttributePredicate(attname.toString(), target.toString()); }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看av不卡| 欧美一区二区三区在| 日本亚洲欧美天堂免费| 国产精品人妖ts系列视频| 欧美亚洲尤物久久| 国产精品2024| 美美哒免费高清在线观看视频一区二区| 欧美激情在线免费观看| 欧美一卡在线观看| 在线国产电影不卡| 99久久精品久久久久久清纯| 麻豆精品视频在线观看免费| 亚洲最大成人网4388xx| 中文字幕一区二区三区视频| 精品电影一区二区| 欧美一区二区久久| 欧美日韩不卡在线| 欧美最猛黑人xxxxx猛交| 国产.欧美.日韩| 国产一区二区免费看| 琪琪一区二区三区| 丝袜诱惑制服诱惑色一区在线观看 | 国产成人免费av在线| 日韩精品国产欧美| 亚洲一区二区三区不卡国产欧美| 国产精品短视频| 国产午夜精品美女毛片视频| 精品免费国产二区三区 | 欧美国产精品一区二区| 欧美一区二区三区日韩| 欧美日韩一区二区三区在线| 色偷偷久久人人79超碰人人澡| 波多野结衣在线aⅴ中文字幕不卡| 国内精品久久久久影院薰衣草| 视频一区在线播放| 日韩专区一卡二卡| 日韩在线观看一区二区| 日日骚欧美日韩| 天堂va蜜桃一区二区三区| 亚洲成av人片一区二区梦乃| 亚洲一级片在线观看| 亚洲人精品一区| 亚洲欧洲av另类| 亚洲精品日韩一| 亚洲国产欧美一区二区三区丁香婷| 亚洲免费电影在线| 亚洲一级不卡视频| 亚洲成人动漫精品| 午夜精品久久久久久久蜜桃app| 亚洲午夜国产一区99re久久| 亚洲国产一二三| 日产国产欧美视频一区精品| 免费一级片91| 国产精品一区二区久激情瑜伽 | 一卡二卡欧美日韩| 亚洲成人午夜电影| 蜜臀久久99精品久久久画质超高清| 蜜桃免费网站一区二区三区| 国产精品资源在线看| 成人激情动漫在线观看| 色婷婷激情综合| 91.com在线观看| 欧美mv日韩mv国产网站| 欧美国产激情二区三区 | 国产麻豆成人精品| fc2成人免费人成在线观看播放| 色综合久久综合网97色综合 | 日韩欧美中文一区二区| 国产午夜久久久久| 一区二区三区在线观看欧美| 日本一区中文字幕| 成人丝袜高跟foot| 欧美三级中文字| 久久青草欧美一区二区三区| 亚洲色图欧美激情| 蜜臀av性久久久久蜜臀aⅴ| 国产成人综合亚洲网站| 欧美伊人久久久久久久久影院| 日韩欧美专区在线| 亚洲欧洲精品一区二区精品久久久| 亚洲va欧美va国产va天堂影院| 黑人精品欧美一区二区蜜桃| 色综合久久精品| 欧美变态tickle挠乳网站| 亚洲天堂久久久久久久| 欧美aa在线视频| 99久久久久免费精品国产| 91精品国产入口在线| 成人免费小视频| 久久不见久久见中文字幕免费| 99久久久国产精品免费蜜臀| 日韩三级免费观看| 一区二区三区视频在线观看| 国产一区福利在线| 欧美日韩精品免费观看视频| 欧美经典一区二区三区| 视频一区视频二区中文字幕| av激情亚洲男人天堂| 日韩女优毛片在线| 亚洲图片自拍偷拍| 99久久久国产精品| 国产欧美一区二区三区鸳鸯浴 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产做a爰片久久毛片| 91黄色激情网站| 国产精品美女久久久久久2018| 另类小说综合欧美亚洲| 色婷婷久久久久swag精品| 欧美国产一区二区在线观看| 老司机午夜精品99久久| 欧美日韩激情在线| 亚洲精品国产无天堂网2021| 国产二区国产一区在线观看| 欧美成人精品二区三区99精品| 亚洲韩国一区二区三区| 色哟哟精品一区| 国产精品成人在线观看| 国产成人综合亚洲网站| 久久久久九九视频| 九九**精品视频免费播放| 欧美一区日韩一区| 午夜国产精品影院在线观看| 欧美中文字幕一区| 亚洲精品国产a| 99re成人精品视频| 日韩一区欧美小说| 北岛玲一区二区三区四区| 久久九九影视网| 国产精品一区二区在线播放 | 高清不卡一区二区| 久久久精品影视| 极品尤物av久久免费看| 欧美电影免费观看完整版| 免费观看一级特黄欧美大片| 欧美另类z0zxhd电影| 婷婷中文字幕一区三区| 欧美日韩国产三级| 日韩av一区二| 精品免费日韩av| 国产成人丝袜美腿| 中文字幕免费在线观看视频一区| 高清久久久久久| 日韩毛片精品高清免费| 色综合天天在线| 亚洲一区二区在线观看视频| 欧美日韩中文另类| 免费视频最近日韩| 欧美精品一区二区三区高清aⅴ| 亚洲日本乱码在线观看| 欧美亚洲一区二区在线观看| 婷婷夜色潮精品综合在线| 欧美一级日韩免费不卡| 黄色日韩三级电影| 国产精品日产欧美久久久久| 91麻豆国产福利精品| 同产精品九九九| 精品久久人人做人人爽| 国产99久久久久| 亚洲靠逼com| 日韩一区和二区| 粉嫩久久99精品久久久久久夜 | 麻豆精品视频在线观看视频| 久久婷婷一区二区三区| eeuss鲁一区二区三区| 亚洲午夜免费视频| 日韩精品一区在线| youjizz久久| 婷婷一区二区三区| 欧美激情一区在线观看| 在线看国产一区二区| 激情五月激情综合网| 亚洲视频电影在线| 91精品国模一区二区三区| 懂色av一区二区夜夜嗨| 亚洲韩国一区二区三区| 2022国产精品视频| 91国偷自产一区二区三区成为亚洲经典 | 最新热久久免费视频| 777xxx欧美| 成人av动漫网站| 免费看精品久久片| 国产精品另类一区| 91麻豆精品久久久久蜜臀| 成人毛片视频在线观看| 日韩av一级片| 亚洲欧美综合另类在线卡通| 日韩三级免费观看| 一本色道a无线码一区v| 韩国女主播一区二区三区| 亚洲综合自拍偷拍| 国产三级久久久| 3751色影院一区二区三区| 成人a免费在线看| 久久99最新地址| 亚洲大片一区二区三区| 国产精品无遮挡| 精品国产一区二区三区av性色| 欧美午夜寂寞影院| 成人免费av网站| 精品在线播放免费|