【发布时间】:2020-04-13 15:40:56
【问题描述】:
所以我在我的 lex 文件中得到了这些标记:
\$\$.* ; /* comment */
\$(.|\n)*\$ ; /* comment */
">=" return GE;
"<=" return LE;
":=" return AT;
"~=" return NEQ;
"if" return IF;
"else" return ELSE;
"then" return THEN;
"elif" return ELIF;
"fi" return FI;
"for" return FOR;
"until" return UNTIL;
"step" return STEP;
"do" return DO;
"done" return DONE;
"repeat" return REP;
"stop" return STOP;
"return" return RET;
"program" return PROG;
"module" return MOD;
"start" return ST;
"end" return END;
"void" return VD;
"const" return CT;
"number" return NB;
"array" return ARR;
"string" return SG;
"function" return FC;
"public" return PB;
"forward" return FW;
而且我想知道是否有一种方法可以仅在它从行首开始时进行标记匹配。 例如,如果在我的程序中我这样写:
start
它应该可以工作,但如果我这样做:
start
或
program start
它不应该工作
【问题讨论】:
-
是行首还是文件首?对于行首,
^正则表达式选项不可以吗?