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

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

?? resolveids.java

?? 有關編譯器的編譯器.
?? JAVA
字號:
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * This file is part of SableCC.                             * * See the file "LICENSE" for copyright information and the  * * terms and conditions for copying, distribution and        * * modification of SableCC.                                  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */package org.sablecc.sablecc;import org.sablecc.sablecc.analysis.*;import org.sablecc.sablecc.node.*;import java.util.*;import java.io.*;public class ResolveIds extends DepthFirstAdapter{  public final Map helpers = new TypedTreeMap(                               StringComparator.instance,                               StringCast.instance,                               NodeCast.instance);  public final Map states = new TypedTreeMap(                              StringComparator.instance,                              StringCast.instance,                              NodeCast.instance);  public final Map tokens = new TypedTreeMap(                              StringComparator.instance,                              StringCast.instance,                              NodeCast.instance);  public final Map ignTokens = new TypedTreeMap(                                 StringComparator.instance,                                 StringCast.instance,                                 NodeCast.instance);  public final Map prods = new TypedTreeMap(                             StringComparator.instance,                             StringCast.instance,                             NodeCast.instance);  public final Map alts = new TypedTreeMap(                            StringComparator.instance,                            StringCast.instance,                            NodeCast.instance);  public final Map elems = new TypedTreeMap(                             StringComparator.instance,                             StringCast.instance,                             NodeCast.instance);  public final Map names = new TypedHashMap(                             NodeCast.instance,                             StringCast.instance);  public final Map errorNames = new TypedHashMap(                                  NodeCast.instance,                                  StringCast.instance);  public final Map elemTypes = new TypedHashMap(                                 NodeCast.instance,                                 StringCast.instance);  public final Map fixedTokens = new TypedHashMap(                                   NodeCast.instance,                                   BooleanCast.instance);  public final List tokenList = new TypedLinkedList(StringCast.instance);  public final LinkedList stateList = new TypedLinkedList(StringCast.instance);  public File pkgDir;  public String pkgName = "";  private boolean processingStates;  private boolean processingIgnTokens;  String currentProd;  String currentAlt;  private int lastLine;  private int lastPos;  public ResolveIds(File currentDir)  {    pkgDir = currentDir;  }  public void inAPkgName(APkgName node)  {    pkgName = node.getPkgId().getText();    pkgDir = new File(pkgDir, node.getPkgId().getText());    if(!pkgDir.exists())    {      if(!pkgDir.mkdir())      {        throw new RuntimeException("Unable to create " + pkgDir.getAbsolutePath());      }    }  }  public void inAPkgNameTail(APkgNameTail node)  {    pkgName += "." + node.getPkgId().getText();    pkgDir = new File(pkgDir, node.getPkgId().getText());    if(!pkgDir.exists())    {      if(!pkgDir.mkdir())      {        throw new RuntimeException("Unable to create " + pkgDir.getAbsolutePath());      }    }  }  public void caseAIdBasic(AIdBasic node)  {    String name = node.getId().getText();    if(helpers.get(name) == null)    {      error2(node.getId(), name);    }  }  public void outAHelperDef(AHelperDef node)  {    String name = node.getId().getText();    if(helpers.put(name, node) != null)    {      error(node.getId(), name);    }    names.put(node, name);  }  public void outATokenDef(ATokenDef node)  {    String name = "T" + name(node.getId().getText());    String errorName = errorName(node.getId().getText());    if(tokens.put(name, node) != null)    {      error(node.getId(), name);    }    names.put(node, name);    errorNames.put(node, errorName);    tokenList.add(name);  }  public void inAStates(AStates node)  {    processingStates = true;  }  public void outAStates(AStates node)  {    processingStates = false;  }  public void inAIgnTokens(AIgnTokens node)  {    processingIgnTokens = true;  }  public void outAIgnTokens(AIgnTokens node)  {    processingIgnTokens = false;  }  public void inAIdList(AIdList node)  {    if(processingStates)    {      String name = node.getId().getText().toUpperCase();      if(states.put(name, node.getId()) != null)      {        error(node.getId(), name);      }      names.put(node.getId(), name);      stateList.add(name);    }    if(processingIgnTokens)    {      String name = "T" + name(node.getId().getText());      if(tokens.get(name) == null)      {        error2(node.getId(), name);      }      if(ignTokens.put(name, node.getId()) != null)      {        error(node.getId(), name);      }      names.put(node.getId(), name);    }  }  public void inAIdListTail(AIdListTail node)  {    if(processingStates)    {      String name = node.getId().getText().toUpperCase();      if(states.put(name, node.getId()) != null)      {        error(node.getId(), name);      }      names.put(node.getId(), name);      stateList.add(name);    }    if(processingIgnTokens)    {      String name = "T" + name(node.getId().getText());      if(tokens.get(name) == null)      {        error2(node.getId(), name);      }      if(ignTokens.put(name, node.getId()) != null)      {        error(node.getId(), name);      }      names.put(node.getId(), name);    }  }  private Map stateMap;  public void inAStateList(AStateList node)  {    stateMap = new TypedTreeMap(                 StringComparator.instance,                 StringCast.instance,                 NodeCast.instance);    String name = node.getId().getText().toUpperCase();    if(states.get(name) == null)    {      error2(node.getId(), name);    }    if(stateMap.put(name, node) != null)    {      error(node.getId(), name);    }  }  public void outAStateList(AStateList node)  {    stateMap = null;  }  public void inAStateListTail(AStateListTail node)  {    String name = node.getId().getText().toUpperCase();    if(states.get(name) == null)    {      error2(node.getId(), name);    }    if(stateMap.put(name, node) != null)    {      error(node.getId(), name);    }  }  public void inATransition(ATransition node)  {    String name = node.getId().getText().toUpperCase();    if(states.get(name) == null)    {      error2(node.getId(), name);    }  }  public void inAProd(AProd node)  {    currentProd = name(node.getId().getText());    String name = "P" + currentProd;    if(prods.put(name, node) != null)    {      error(node.getId(), name);    }    names.put(node, name);  }  public void inAParsedAlt(AParsedAlt alt)  {    if(alt.getAltName() != null)    {      currentAlt =        "A" +        name(((AAltName) alt.getAltName()).getId().getText()) +        currentProd;      if(alts.put(currentAlt, alt) != null)      {        error(((AAltName) alt.getAltName()).getId(), currentAlt);      }      names.put(alt, currentAlt);    }    else    {      currentAlt = "A" + currentProd;      if(alts.put(currentAlt, alt) != null)      {        error(currentAlt);      }      names.put(alt, currentAlt);    }  }  public void inAIgnoredAlt (AIgnoredAlt  alt)  {    if(alt.getAltName() != null)    {      currentAlt =        "A" +        name(((AAltName) alt.getAltName()).getId().getText()) +        currentProd;      if(alts.put(currentAlt, alt) != null)      {        error(((AAltName) alt.getAltName()).getId(), currentAlt);      }      names.put(alt, currentAlt);    }    else    {      currentAlt = "A" + currentProd;      if(alts.put(currentAlt, alt) != null)      {        error(currentAlt);      }      names.put(alt, currentAlt);    }  }  public void inALookAhead(ALookAhead node)  {    Token token = (Token) node.getSlash();    throw new RuntimeException(      "[" + token.getLine() + "," + token.getPos() + "] " +      "Look ahead not yet supported.");  }  public void caseAElem(AElem elem)  {    if(elem.getElemName() != null)    {      String name = currentAlt + "." +                    name(((AElemName)elem.getElemName()).getId().getText());      if(elems.put(name, elem) != null)      {        error(((AElemName)elem.getElemName()).getId(), name);      }      if(((AElemName)elem.getElemName()).getId().getText().equals("class"))      {        error5(((AElemName)elem.getElemName()).getId());      }      names.put(elem, name(((AElemName)elem.getElemName()).getId().getText()));    }    else    {      String name = currentAlt + "." +                    name(elem.getId().getText());      if(elems.put(name, elem) != null)      {        error(elem.getId(), name);      }      if(elem.getId().getText().equals("class"))      {        error5(elem.getId());      }      names.put(elem, name(elem.getId().getText()));    }  }  public void outAProductions(AProductions prod)  {    prod.apply(new DepthFirstAdapter()               {                 public void caseAElem(AElem node)                 {                   String name = name(node.getId().getText());                   if(node.getSpecifier() != null)                   {                     if(node.getSpecifier() instanceof ATokenSpecifier)                     {                       if(tokens.get("T" + name) == null)                       {                         error2(node.getId(), "T" + name);                       }                       if(ignTokens.get("T" + name) != null)                       {                         error3(node.getId(), "T" + name);                       }                       elemTypes.put(node, "T" + name);                     }                     else                     {                       if(prods.get("P" + name) == null)                       {                         error2(node.getId(), "P" + name);                       }                       elemTypes.put(node, "P" + name);                     }                   }                   else                   {                     Object token = tokens.get("T" + name);                     Object ignToken = ignTokens.get("T" + name);                     Object production = prods.get("P" + name);                     if((token == null) && (production == null))                     {                       error2(node.getId(), "P" + name + " and T" + name);                     }                     if(token != null)                     {                       if(production != null)                       {                         error4(node.getId(), "P" + name + " and T" + name);                       }                       if(ignToken != null)                       {                         error3(node.getId(), "T" + name);                       }                       elemTypes.put(node, "T" + name);                     }                     else                     {                       elemTypes.put(node, "P" + name);                     }                   }                 }               }              );  }  public void defaultcase(Node node)  {    if(node instanceof Token)    {      Token t = (Token) node;      lastLine = t.getLine();      lastPos = t.getPos() + t.getText().length();    }  }  public static String name(String s)  {    StringBuffer result = new StringBuffer();    boolean upcase = true;    int length = s.length();    char c;    for(int i = 0; i < length; i++)    {      c = s.charAt(i);      switch(c)      {      case '_':        upcase = true;        break;      default:        if(upcase)        {          result.append(Character.toUpperCase(c));          upcase = false;        }        else        {          result.append(c);        }        break;      }    }    return result.toString();  }  public static String errorName(String s)  {    StringBuffer result = new StringBuffer();    int length = s.length();    char c;    for(int i = 0; i < length; i++)    {      c = s.charAt(i);      switch(c)      {      case '_':        {          result.append(' ');        }        break;      default:        {          result.append(c);        }        break;      }    }    return result.toString();  }  private static void error(Token token, String name)  {    throw new RuntimeException(      "[" + token.getLine() + "," + token.getPos() + "] " +      "Redefinition of " + name + ".");  }  private void error(String name)  {    throw new RuntimeException(      "[" + lastLine + "," + lastPos + "] " +      "Redefinition of " + name + ".");  }  private static void error2(Token token, String name)  {    throw new RuntimeException(      "[" + token.getLine() + "," + token.getPos() + "] " +      name + " undefined.");  }  private static void error3(Token token, String name)  {    throw new RuntimeException(      "[" + token.getLine() + "," + token.getPos() + "] " +      name + " is ignored.");  }  private static void error4(Token token, String name)  {    throw new RuntimeException(      "[" + token.getLine() + "," + token.getPos() + "] " +      "ambiguous " + name + ".");  }  private static void error5(Token token)  {    throw new RuntimeException(      "[" + token.getLine() + "," + token.getPos() + "] " +      "class is an invalid element name.");  }  public String toString()  {    StringBuffer s = new StringBuffer();    String nl = System.getProperty("line.separator");    s.append("Helpers:");    s.append(nl);    s.append(helpers);    s.append(nl);    s.append("States:");    s.append(nl);    s.append(states);    s.append(nl);    s.append("Tokens:");    s.append(nl);    s.append(tokens);    s.append(nl);    s.append("Ignored Tokens:");    s.append(nl);    s.append(ignTokens);    s.append(nl);    s.append("Productions:");    s.append(nl);    s.append(prods);    s.append(nl);    s.append("Alternatives:");    s.append(nl);    s.append(alts);    s.append(nl);    s.append("Elements:");    s.append(nl);    s.append(elems);    s.append(nl);    return s.toString();  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品视频网| 国产成人日日夜夜| 在线不卡中文字幕| 久久久久久久国产精品影院| 高清视频一区二区| 日韩精品视频网| 伊人色综合久久天天| 精品美女在线观看| 欧美日本国产视频| 成人免费福利片| 开心九九激情九九欧美日韩精美视频电影| 久久久久久久久久久久久久久99| 一本色道亚洲精品aⅴ| 国产精品一二三四| 另类小说欧美激情| 免费在线欧美视频| 轻轻草成人在线| 肉色丝袜一区二区| 午夜免费欧美电影| 亚洲综合色区另类av| 日韩伦理电影网| |精品福利一区二区三区| 中文字幕va一区二区三区| 欧美精品一区二区久久久| 日韩欧美中文一区| 91麻豆精品国产91久久久久| 在线观看视频91| 色偷偷88欧美精品久久久| 99国产精品国产精品毛片| 成人免费看视频| 色女孩综合影院| 91黄色免费看| 91麻豆精品国产91久久久久| 精品久久久三级丝袜| 26uuu国产日韩综合| 国产欧美一区二区精品仙草咪 | 91麻豆精品国产91久久久久 | 国产一区日韩二区欧美三区| 蜜桃av一区二区三区| 加勒比av一区二区| www.亚洲免费av| 一本色道久久加勒比精品 | 日韩精品一区二区三区中文不卡 | 91精品国产黑色紧身裤美女| 日韩亚洲欧美在线观看| 久久精品夜夜夜夜久久| 亚洲人成小说网站色在线 | 欧美日韩国产免费一区二区| 日韩一区二区在线观看视频| 欧美变态口味重另类| 亚洲柠檬福利资源导航| 蜜桃视频在线观看一区| 成人毛片在线观看| 欧美变态tickle挠乳网站| 国产精品夫妻自拍| 精彩视频一区二区三区| 欧美午夜电影在线播放| 国产网站一区二区| 亚洲va欧美va国产va天堂影院| 国产精品自拍在线| 欧美福利一区二区| 亚洲三级小视频| 国产毛片精品国产一区二区三区| 欧美性xxxxxx少妇| 亚洲天堂av一区| 波多野洁衣一区| 欧美国产综合色视频| 美女视频黄a大片欧美| 欧美主播一区二区三区美女| 日韩美女啊v在线免费观看| 国产伦精品一区二区三区免费迷 | 欧美日韩一区小说| 亚洲人一二三区| 99精品欧美一区二区三区小说 | 亚洲日本在线天堂| 91在线无精精品入口| 国产精品视频看| 成人免费观看男女羞羞视频| 久久精品一级爱片| 韩国av一区二区三区在线观看| 欧美日韩国产一区二区三区地区| 国产精品九色蝌蚪自拍| 色噜噜偷拍精品综合在线| 亚洲综合av网| 日韩视频免费观看高清完整版在线观看 | 国产精品久久久久一区二区三区 | 国产精品乱码一区二三区小蝌蚪| 国产成人三级在线观看| 亚洲区小说区图片区qvod| 99久久精品国产导航| 亚洲国产成人91porn| 日韩一区二区影院| 国产成人在线电影| 亚洲精品日日夜夜| 日韩免费看网站| 国产精品乡下勾搭老头1| 欧美高清在线一区| 99久久伊人精品| 日韩精品福利网| 国产欧美精品区一区二区三区| 色婷婷久久99综合精品jk白丝| 水野朝阳av一区二区三区| 久久综合久久综合九色| 在线视频中文字幕一区二区| 麻豆精品久久久| 亚洲美女视频一区| 久久夜色精品国产噜噜av| 日本电影欧美片| 国产福利精品一区二区| 日韩国产欧美视频| 国产精品久久福利| 欧美精品一区二区三区蜜桃 | 国产精品一线二线三线精华| 亚洲精品成人精品456| 久久精品亚洲麻豆av一区二区| 99re8在线精品视频免费播放| 91亚洲精品久久久蜜桃网站 | 成人sese在线| 视频一区欧美精品| 亚洲精品中文字幕在线观看| 欧美激情一区二区三区蜜桃视频| 日韩三级伦理片妻子的秘密按摩| 97久久精品人人做人人爽50路 | 国产亚洲精品超碰| 久久综合狠狠综合| 2024国产精品| 久久久久九九视频| 国产三级精品三级在线专区| www国产亚洲精品久久麻豆| 日韩一区二区精品在线观看| 欧美日韩高清一区二区| 欧美日韩国产经典色站一区二区三区| 91色porny蝌蚪| 在线免费观看不卡av| 91久久精品一区二区三| 欧美中文字幕不卡| 欧美一区永久视频免费观看| 日韩精品中文字幕一区二区三区| 欧美久久高跟鞋激| 欧美电视剧在线观看完整版| 精品99999| 国产精品乱码妇女bbbb| 亚洲综合激情另类小说区| 亚洲成人高清在线| 国产成人免费视频一区| 91丨porny丨国产| 在线播放一区二区三区| 26uuu亚洲婷婷狠狠天堂| 一区在线中文字幕| 日韩综合在线视频| 国产成人av资源| 欧美日本在线播放| 中文字幕精品一区| 免费观看一级特黄欧美大片| 高潮精品一区videoshd| 91福利国产精品| 国产清纯白嫩初高生在线观看91 | 久久精品夜色噜噜亚洲a∨| 亚洲一区在线看| 成人app网站| 日韩精品一区二区三区中文精品 | 久久精品国产亚洲高清剧情介绍| 成人深夜在线观看| 日韩欧美成人午夜| 亚洲一区自拍偷拍| 91成人在线观看喷潮| 久久久久久97三级| 国内久久婷婷综合| 3atv一区二区三区| 亚洲第一二三四区| 一本色道综合亚洲| 自拍偷拍国产精品| 国产69精品久久99不卡| 久久综合九色欧美综合狠狠| 天天做天天摸天天爽国产一区| 91美女在线观看| 亚洲欧美国产毛片在线| 91蝌蚪porny九色| 亚洲柠檬福利资源导航| 色综合久久综合| 亚洲精品国产a| 欧美久久一二区| 蜜臀99久久精品久久久久久软件| 日韩一区二区三区在线观看| 日本中文字幕不卡| 精品美女在线观看| 国产精品123区| 成人欧美一区二区三区小说 | 欧美亚洲综合网| 香蕉久久夜色精品国产使用方法| 欧美日本韩国一区| 久久不见久久见中文字幕免费| 日韩一区二区麻豆国产| 处破女av一区二区| 一区二区三区精品视频| 日韩欧美成人一区二区| 97精品视频在线观看自产线路二| 亚洲精品视频一区| 欧美成人精品二区三区99精品| 国产精品888|