case_01样例中,@、$属于当前语言标识符和运算符中的非法字符,出现时会导致词法错误,但字符串中出现这两个字符是合理的。
case_02样例中,既测试了普通整数(109238)、小数(3.14)的识别,又测试了1.和.7这一类未输入完整的小数的识别。
case_03样例中,样例3、4行出现了字符串跨行的词法错误。
各类注释的识别
包含三类注释
//单行注释
#单行注释
/**/多行注释
说明:
样例第3行#split N
被正确识别为注释,所以split和N都没有被当成标识符输出。同理,第5行的///This is/ a comment
、第8行的/*?*/
、第8行到第12行中的/**/
间的部分(如下图)也都被正确识别为注释,其中的字符都没有被识别输出。第13行的注释/*没有闭合,属于一个词法错误,
/*
KR = K - KL
integer N_L = ceiling(N * KL / K) #split N
integer _NR*/
case_05样例中,整合了前四个样例中异常字符词法错误、字符串跨行词法错误、注释/**/未闭合词法错误、注释识别、特殊形式实数识别的可能。