如何在 Flex 中定义布尔值

How to define a boolean in Flex

我正在为玩具 Java 语言 (Decaf) 构建编译器,但我在定义布尔值时遇到了问题。当我尝试分析一个布尔值时,它总是 returns false,无论我是否写了 false。

弹性代码:

true|false  {
            yylval.boolConstant = yytext;
            return T_BoolConstant;
        }

输入代码:

bool x = true;
bool y = false;

输出:

true         T_BoolConstant (value = false)
false        T_BoolConstant (value = false)

我尝试搜索 SO 但这是我能得到的最接近正确答案的方法:

Simulating Booleans in Bison with C

谢谢!

EDIT:输出被编码在一个单独的 c 文件中,该文件打印在测试代码中找到的字符串,它是什么类型的值(在这种情况下它是布尔值或 BooleanConstant),然后保存的令牌的值。抱歉造成任何混淆。

我认为您需要将字符串 "true""false" 转换为布尔常量 truefalse。否则你只是存储字符串。

true {
    yylval.boolConstant = true;
    return T_BoolConstant;
}

false {
    yylval.boolConstant = false;
    return T_BoolConstant;
}

Here is a similar question with a different approach.

**Uson for the web services**   
 private var IsCity:Boolean = true;
    private function button_click():void {
        //dg.dataProvider= countrys
        webService.getCountries.send(1,0);

    }

    private function getCountries_result(evt:ResultEvent):void {

        //var countryList:ArrayCollection=evt.result as ArrayCollection;
                    dg.dataProvider=evt.result as ArrayCollection;

    }
    private function dgridclick():void{
    IsCity=false;
                webService.getSubLocationsByMultipleParameters.send(1,2,true,dg.selectedItem.id,dg.selectedItem.targetCode)

    }
    private function getState_result(evt:ResultEvent):void{

        if(IsCity)
            dg2.dataProvider=evt.result as ArrayCollection;
        else
            dg1.dataProvider=evt.result as ArrayCollection;

    }

    private function d1click():void{
      IsCity=true
    webService.getSubLocationsByMultipleParameters.send(1[4,3],false,dg1.selectedItem.id,dg1.selectedItem.targetCode);
    }