我们正试图破译一些规则语法,并且不确定其来源。
以下是一个例子:
(CARS->TYPE='C').and.(CARS->CD_CODE<>'').and.('|'+INVOICE->TYPE+'|'$'|AAA|').and.('|'+SUBSTR(INVOICE->TYPE,1,2)+'|'$'|11|')
具体而言,我们正在努力了解|
和$
。任何人都可以告诉我他们是否看到过相似的内容并且对|
和$
的正确解释有所躲避?
答案 0 :(得分:1)
从它的语法我们可以看出它是一种“现代”语言。记住“现代”好吧;)
substr
.and.
->
与cobol和汇编语言相比,非常现代。
(CARS-&GT; TYPE = 'C')和(CARS-&GT; CD_CODE&LT;&GT; '')。。。和( '|' + INVOICE-&GT; TYPE + '|' $'| AAA | ')。而(' | '+ SUBSTR(INVOICE-&GT; TYPE,1,2)+' | '$' | 11 |')
伪代码可以是:
(if car type is 'C'
and
if car cd_code is not empty
and
if invoice type is 'AAA'
and
if invoice type first 2 letters are '11')
then return true
我对使用$的猜测是:
= and <> are only when compare against a character
$ when compare array of character, i.e. strings.
(我不知道输出会是什么,因为它将整个发票类型与AAA进行比较,甚至将前两个字母比作11.也许您在提交之前编辑了代码?)
Fortran 90 可能是猜测,但即使 DBase III 也许。
DBase链接: http://lynnbob.com/bob/articles/DBASEIIIPlusLevel2.htm
Fortran链接: http://www.ews.uiuc.edu/~mrgates2/docs/fortran.html
关于管道的DBASE ......
如果传递参数,则必须用|分隔| (管道)。即使没有传递参数,也需要管道||。如果传递参数,它们将在||。
中分隔答案 1 :(得分:0)
这不是BASIC,Pascal,C,Java,perl,Python,COBOL或FORTRAN,我可以用这些语言的经验告诉你。提及您正在使用的规则引擎可能会有所帮助。
正在执行的操作看起来很像匹配操作。
'|'看起来像管道字符的字符串文字并且考虑到上下文,它可能被用作平面文件格式数据库中的分隔符,类似于CSV。例如,明文可能类似于| INVOICETYPE | something | AAA |
但无法帮助您使用$运算符。这可能是变量替换或匹配任何操作,甚至是连接器。
答案 2 :(得分:0)
我的猜测: Fortran。
现在这是一种相当复杂的语言。我认为它没有->
运算符,但似乎确实有=>
。也许这是您的代码段中的供应商扩展。
亲Fortran证据是.and.
运算符。
答案 3 :(得分:0)
看起来像FORTRAN-ish语言。 ->
不是标准运营商。 |
只是一个字符串(看起来不像运算符),但$
看起来像运算符,可能是指定字符串格式的东西?推断这个事实是它总是出现在字符串组之间。