我试图在JavaScript中制作一个web应用程序,将算术表达式转换为与i 486兼容的程序集。你可以在这里看到:
我试图使它能够处理包含增量和递减运算符(“-”和"++")的表达式。现在,它似乎正确地处理了如下表达式:
c++
然而,在对这样一个短语的答复中:
c--
该网络应用程序的响应如下:
Tokenizer error: Unable to assign the type to the operator '-' (whether it's unary or binary).
错误信息似乎是不言自明的。也就是说,我让令牌器为"-“操作
我不是在寻找一个实现,只是伪代码,或者至少是一个有效处理这个问题的算法。我需要处理这样的声明:
(a) # if(a)
(a,b) # if(a || b)
(a+b) # if(a && b)
(a+b,c) # same as ((a+b),c) or if((a&&b) || c)
(a,b+c) # same as (a,(b|c)) or if(a || (b&&c))
因此,+运算符优先于,运算符。(因此,我的+就像数学乘法,,是数学加法,但这只是让人困惑)。
我认为递归函数是最好的,所以我可以通过递归调用轻松地处理嵌
“米斯拉-2008”规则第5-2-1条规定:
逻辑&&或||的每个操作数都应该是后缀表达式.例外情况:如果表达式由只包含逻辑&&的序列或仅由逻辑||组成的序列组成,则不需要额外的括号。
下面是文档本身的例子:
if (x == 0 && ishigh) // Non-compliant
if (( x == 0 ) && ishigh) // Compliant
if (x || y || z) // Compliant by exception, if x, y and z bool
if
考虑下面给出的代码段:
#include <stdio.h>
struct s
{
int x;
char c;
};
int main()
{
struct s x[2]={{1,'a'},{2,'b'}};
struct s * p;
p=x;
int a = p++ -> x; //line of doubt
printf("%d \n",a);
}
以下代码的输出为1,并清楚地表明它实际上被计算为:
int
在coffeescript中,我们可以这样做:
rows = [
{a: 1}
{b: 2}
]
for row in rows
for k,v of row
alert "#{k}: #{v}"
那么为什么我们不能这样做呢?
for k,v of row for row in rows
alert "#{k}: #{v}"
我从数据库中获得了一组字符串(让我们称之为“条件字符串”)。这些字符串有括号,由and或or子句连接。
这些字符串(“条件字符串”)的一些示例如下:
pattern_1 = (mary sam route) AND (dance run fly)
pattern_2 = (birds AND fly) OR (athlete AND run)
然后我得到一组输入字符串(比如电子邮件等)。我想看看输入字符串是否满足了“条件字符串”指定的条件。换句话说,我想编写一个像isConditionSatisfied(string, string)这样的函数,当被调用为isCondition
我试图‘翻译’(我的意思是python可以理解的语言) '2x^2+3',我想得到'2*x^2 +3‘(这样python就可以理解它了)。
eq = '2x^2+3'
newlist = []
if '^' in eq:
eq = eq.replace('^', '**')
else:
print ''
for x in range (len(eq)):
newlist.append(eq [x])
print newlist
然后我得到了'2',