第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何保留從變量中的規(guī)則獲取的值并在 ANTLR 語法中重用它?

如何保留從變量中的規(guī)則獲取的值并在 ANTLR 語法中重用它?

回首憶惘然 2022-12-15 10:58:46
我在語法vAttributeName和vClassName中聲明了 String 變量,并為它們分配了標(biāo)記的文本值:className和attributeName。當(dāng)我使用一個(gè)通常應(yīng)該在錯(cuò)誤替代項(xiàng)中包含值的變量時(shí),在另一個(gè)規(guī)則中,它在消息中返回 null ... 為什么我的變量不保留這些值?我該如何解決?grammar TestExpression;@parser::members {            String vAttributeName;            String vClassName;            }/* SYNTAX RULES */textInput               : classifierContext ;classifierContext       : 'context' c=className attributeContext {vClassName = $c.text;};attributeContext        : '::' a=attributeName ':' dataType initDefinition {vAttributeName = $a.text;};initDefinition          : 'init' ':' initExpression ;initExpression          : boolExpression                        | decimalExpression                        | dateTimeExpression                        | .+? {notifyErrorListeners("Corriger - "l'attribut "+vAttributeName+" de l'entité "+vClassName+" ne correspond pas");}我正在嘗試解析一個(gè)表達(dá)式,該表達(dá)式描述了一個(gè)具有假值屬性的類。我預(yù)期的消息是:“修復(fù) -汽車實(shí)體的座位屬性不匹配”。但實(shí)際消息是:“修復(fù) -空實(shí)體的空屬性不匹配”。
查看完整描述

1 回答

?
藍(lán)山帝景

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊

如果您有類似的規(guī)則a: b c {action};和匹配該規(guī)則的輸入,事件將按以下順序發(fā)生:

  1. 應(yīng)用規(guī)則b并執(zhí)行其操作(如果有)。

  2. 應(yīng)用規(guī)則c并執(zhí)行其操作(如果有)。

  3. 該操作action已執(zhí)行并能夠訪問bc規(guī)則的結(jié)果(包括由它們的操作設(shè)置的任何內(nèi)容,這就是為什么那些先運(yùn)行很重要的原因)。

如果您有a: b {action} c;,則操作將在 之后b但之前執(zhí)行c(因此將無法訪問c的結(jié)果)。

因此,對(duì)于您的代碼,這意味著 的操作先于和的操作initExpression運(yùn)行,這就是未設(shè)置變量的原因。您可以通過移動(dòng)操作來解決問題,以便在解析所需部分(即/ )后直接發(fā)生。classifierContextattributeContextclassNameattributeName

您也可以完全擺脫變量,而是通過從祖父母上下文中獲取所需信息來獲取所需信息。


查看完整回答
反對(duì) 回復(fù) 2022-12-15
  • 1 回答
  • 0 關(guān)注
  • 93 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)