Drools 降低输入错误

Drools 降低输入错误,drools,Drools,我使用电子表格编译器提取决策表的drl。这是相关的一点 global Integer netincome; // rule values at C14, header at C8 rule "Net Income_14" salience 65522 when user:CSUserBundle(user.grossHouseholdIncome >= 0, user.grossHouseholdIncome < 1150000, user.gross

我使用电子表格编译器提取决策表的drl。这是相关的一点

global Integer netincome;
// rule values at C14, header at C8
rule "Net Income_14"
    salience 65522
    when
        user:CSUserBundle(user.grossHouseholdIncome >= 0, user.grossHouseholdIncome < 1150000, user.grossHouseholdIncome >= 15700*52, user.grossHouseholdIncome < 86600*52)
    then
        netincome = eval(user.grossHouseholdIncome - 0 - (user.grossHouseholdIncome – 816400) * 0.12 - 0)
end

不幸的是,第78列中的错误是'then'语句中第二个user.grossHouseholdIncome的中间。我搜索了整个文档,但在文本中找不到任何关于使用变量名两次的信息。我尝试添加“eval”以回应De Smet对相同错误的建议。有什么想法吗?

我所做的是将规则复制粘贴到一个合适的文本编辑器中,然后尝试搜索所有出现的特殊ASCII字符,如引号(“)或连字符(-)或者其他任何东西,神奇的office程序很容易转换成某种Unicode字形,看起来不错,但被编译器拒绝。此外,不要相信空格。它们通常是程序由于某些制表符而产生的视觉错觉。我用一个下划线替换了空格 代表制表符。现在78与邪恶角色完全对齐

_netincome = eval(user.grossHouseholdIncome - 0 - (user.grossHouseholdIncome – 816400) * 0.12 - 0)
....5...10....5...20....5...30....5...40....5...50....5...60....5...70....5...80
_netincome = eval(user.grossHouseholdIncome - 0 - (user.grossHouseholdIncome – 816400) * 0.12 - 0)
....5...10....5...20....5...30....5...40....5...50....5...60....5...70....5...80