freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

javacc學(xué)習(xí)手冊(cè)(編輯修改稿)

2025-07-22 06:59 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 ee源代碼中,當(dāng)簡(jiǎn)寫(xiě)的不確定節(jié)點(diǎn)表達(dá)跟著一個(gè)括號(hào)表達(dá)式時(shí),可能導(dǎo)致歧義。在那種情況下簡(jiǎn)寫(xiě)必須用完全寫(xiě)法替代。例如:( ... ) N ( a() )上面表達(dá)式邏輯不清,你必須明確的使用條件式: ( ... ) N(true) ( a() ) 注意:節(jié)點(diǎn)描述符表達(dá)式不能有副作用,JJTree并沒(méi)有指定表達(dá)式將被計(jì)算多少次。需要注意:節(jié)點(diǎn)聲明可以放到一個(gè)非終結(jié)符聲明的后面,例如下面:Void Term() MyTerm:{……}{……}這樣當(dāng)對(duì)Term的展開(kāi)成功時(shí),就會(huì)生成一個(gè)名字為MyTerm的節(jié)點(diǎn)。也可以放到某個(gè)非終結(jié)符的展開(kāi)的某一段的后面,例如:Void VarList():{…}{ Type (Var (Comma Var)*) list}l 不生成節(jié)點(diǎn)如果不希望jjTree生成以某個(gè)非終結(jié)符為根的分析子樹(shù),可以在這個(gè)非終結(jié)符后面加一個(gè)聲明void。l 缺省的非終結(jié)符的聲明缺省的非終結(jié)符的聲明相當(dāng)于它后面聲明了一個(gè)跟它同名的(大寫(xiě))節(jié)點(diǎn),例如:Void Term():{…}{…}相當(dāng)于Void Term()TERM:{…}{…}為了使對(duì)非終結(jié)符的處理采用void方式的處理,(缺省為假)。l 終結(jié)符節(jié)點(diǎn)的生成jjTree對(duì)于終結(jié)符的處理是不將它作為節(jié)點(diǎn)壓入,為了解決這個(gè)問(wèn)題,我們可以在一個(gè)終結(jié)符的后面插入一個(gè)節(jié)點(diǎn)聲明,例如:Void A():{…}{ (BB) C()}一個(gè)節(jié)點(diǎn)的作用域是它對(duì)應(yīng)的非終結(jié)符或它前面控制的串展開(kāi)時(shí),可以用jjtThis訪問(wèn)這個(gè)節(jié)點(diǎn)。 節(jié)點(diǎn)(Node)對(duì)象JJTree定義了一個(gè)所有語(yǔ)法分析樹(shù)節(jié)點(diǎn)必須實(shí)現(xiàn)的接口Node,這個(gè)接口定義諸如:設(shè)置節(jié)點(diǎn)的父節(jié)點(diǎn)、增加子節(jié)點(diǎn)、重新獲得子節(jié)點(diǎn)等操作方法。public interface Node { /* 一個(gè)節(jié)點(diǎn)成為當(dāng)前節(jié)點(diǎn)后,該方法被調(diào)用,表示可以添加它的孩子節(jié)點(diǎn)*/ public void jjtOpen()。 /** 所有孩子節(jié)點(diǎn)被添加后,調(diào)用該方法 */ public void jjtClose()。 /** 該對(duì)方法用來(lái)與父節(jié)點(diǎn)發(fā)生關(guān)聯(lián)*/ public void jjtSetParent(Node n)。 public Node jjtGetParent()。 /** 添加一個(gè)孩子節(jié)點(diǎn)n到孩子列表 */ public void jjtAddChild(Node n, int i)。 /** 該方法返回一個(gè)孩子節(jié)點(diǎn),孩子自左至右,從0開(kāi)始數(shù)數(shù),This method */ public Node jjtGetChild(int i)。 /** 返回孩子節(jié)點(diǎn)的數(shù)量 */ int jjtGetNumChildren()。}JJTree可以設(shè)置 “simple” 和 “multi”兩種模式之一。在“simple”[單一]模式下語(yǔ)法分析樹(shù)節(jié)點(diǎn)都是“SimpleNode”類型。而在“multi”模式下語(yǔ)法分析樹(shù)節(jié)點(diǎn)類型取決于節(jié)點(diǎn)的名字。如果你沒(méi)有提供實(shí)現(xiàn)“Node”接口的類,JJTree會(huì)為你生成一些基于“SimpleNode”的簡(jiǎn)單實(shí)現(xiàn),你可以修改這個(gè)實(shí)現(xiàn)以適應(yīng)需求。 類SimpleNode該類實(shí)現(xiàn)了Node接口,如果它不存在,自動(dòng)有JJTree創(chuàng)建。你可以用該類作為一個(gè)模版或超類,該類提供了一個(gè)遞歸遍歷/傾倒(dump)其節(jié)點(diǎn)和孩子節(jié)點(diǎn)的機(jī)制。例如{ ((SimpleNode)()).dump()。 }如果VISITOR選項(xiàng)被設(shè)置,另一個(gè)實(shí)用的方法是{ public void childrenAccept(MyParserVisitor visitor)。 }這對(duì)于實(shí)現(xiàn)前序和后序遍歷很有幫助。另一個(gè)有用的內(nèi)置 SimpleNode 方法是 jjtGetChild(int)public class SimpleNode implements Node { protected Node parent。 protected Node[] children。 protected int id。 protected eg1 parser。 public SimpleNode(int i) { id = i。 } public SimpleNode(eg1 p, int i) { this(i)。 parser = p。 } public void jjtOpen() { } public void jjtClose() { } public void jjtSetParent(Node n) { parent = n。 } public Node jjtGetParent() { return parent。 } public void jjtAddChild(Node n, int i) { if (children == null) { children = new Node[i + 1]。 } else if (i = ) { Node c[] = new Node[i + 1]。 (children, 0, c, 0, )。 children = c。 } children[i] = n。 } public Node jjtGetChild(int i) { return children[i]。 } public int jjtGetNumChildren() { return (children == null) ? 0 : 。 } /* You can override these two methods in subclasses of SimpleNode to customize the way the node appears when the tree is dumped. If your output uses more than one line you should override toString(String), otherwise overriding toString() is probably all you need to do. */ public String toString() { return [id]。 } public String toString(String prefix) { return prefix + toString()。 } /* Override this method if you want to customize how the node dumps out its children. */ public void dump(String prefix) { (toString(prefix))。 if (children != null) { for (int i = 0。 i 。 ++i) { SimpleNode n = (SimpleNode)children[i]。 if (n != null) { (prefix + )。 } } } }} 節(jié)點(diǎn)作用域和用戶行為 每個(gè)節(jié)點(diǎn)都有其作用域。這個(gè)作用域內(nèi)的用戶行為可以通過(guò)使用特殊標(biāo)志符“jjtThis”來(lái)訪問(wèn)已被創(chuàng)建的節(jié)點(diǎn)。這個(gè)標(biāo)志符被隱含的聲明為節(jié)點(diǎn)的類型,這樣此節(jié)點(diǎn)的屬性、方法可以輕易的被訪問(wèn)。A scope is the expansion unit immediately preceding the node decoration. This can be a parenthesized expression. When the production signature is decorated (perhaps implicitly with the default node), the scope is the entire right hand side of
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1