为什么它需要lex中的规则?

时间:2011-01-14 07:48:08

标签: yacc lex

this file一样,在我看来,只有声明才足够。

有人可以解释为什么在词法分析中需要规则吗?

在我看来,他们只需要.y个文件......

通过规则我在讨论像以下这样的块:

rdels {
  if ($this->smarty->auto_literal) {
     $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  } else {
     $this->token = Smarty_Internal_Templateparser::TP_RDEL;
     $this->yypopstate();
  }
}

何时到yypopstateyypushstate

1 个答案:

答案 0 :(得分:0)

当字符输入可能含糊不清时,您输入状态

如果词法分析器遇到"(引用),则可能会输入一个名为“string”的状态(yypushstate),其中包含任何后续字符,否则将具有特殊含义(即{{ 1}},+等)被认为是字符串的一部分。当词法分析器遇到另一个-时,“字符串”状态结束(yypopstate)。

在flex中,这些状态称为start conditions