3.1.1
float limitedSquare(x){float x;
/* returns x-squared, but never more than 100 */
return (x<=-10.0||x>=10.0)?100:x*x;
}
<float> <id,指向符号表中limitedSquare条目的指针> <(> <id,指向符号表中x条目的指针> <)> <float> <id,指向符号表中x条目的指针> <;> <return> <(> <id,指向符号表中x条目的指针> <rel,<=> <minus,-unary> <num,浮点数10.0> <cond,||> <id,指向符号表中x条目的指针> <rel,>=> <num,浮点数10.0> <)> <?> <num,整数100> <:> <id,指向符号表中x条目的指针> <op,*> <id,指向符号表中x条目的指针>
3.1.2
Here is a photo of <b>my house</b>;
<p><img src="house.gif"><br>
See <a href="morePix.html">More Picture</a> if you
liked that one.</p>
<text,"Here is a photo of"> <nodestart,b> <text,"my house"> <nodeend,b> <nodestart,p> <selfnode,符号表中指向src是house.gif的img引用> <selfnode,br> <text,"See "> <nodestart,符号表中指向href是morePix.html的a引用> <text,"More Picture"> <nodeend,符号表中指向href是morePix.html的a引用> <text,"if you \n liked that one."> <nodeend,p>
3.3.1 略
3.3.2
1) 首尾为a,中间段是零或多个a或b组成的串
2) 由零或多个或为a,或为空,或为a及零或多个b,或为多个b组成的串
3) 由零或多个a或b,且末尾为aab或aba或aaa或abb组成的串
4) 在三个b产生的四个间隙中插入零或多个a组成的串
5) 或空,或为aa或bb组成的串,或在偶数个ab或者ba产生的间隙中插入零或多个aa或bb组成的串
3.3.3
1) n+1
2) n+1
3) n-1
4) 近似于于求解0<=x+y<=n的非负整数解的个数
但需要注意,唯一的特例是x+y=n的解都是等价的
所以t=n(n+1)/2+1
5) 每个字符有两种状态,出现或不出现在子序列中
因此2^n
3.3.4 insensitive -> character | capital
character -> [a-z]
captital -> [A-Z]
select->s|S e|E l|L e|E c|C t|T
3.3.5
1) a*e*i*o*u*
2) a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z*
3) / \* (.*\"/\*.*/\*.*)* \*/
4) 查了一下 (?!.*?(\d).*?\1.*?$)\d+ 喵喵喵?先放着
5) 跟4)有一定联系,先放着
6) even_a_even_b -> (aa|bb)*((ab|ba)(aa|bb)*(ab|ba)(aa|bb)*)*
even_a_odd_b-> even_a_even_b a(aa|bb)*(ab|ba) even_a_even_b (写法应该较多,都是一个意思)
7) 不懂国际象棋,跳过
8) b*(ab?)*
9) b*a+b?a*
3.3.6
1) [a-jA-J]
2) [^(aeiou)]