ustas
Элекомист №1
Zend Engine "zend_language_scanner.l"
на с++ не пишу, но для общего развития хочу понять как идет синтактический разбор. В общем понятно как работает, но вопросы есть.
zend_language_scanner.l
не могу понять как это работает, это макрос так определен? и как понять откуда берется "<%="|"<?="
на с++ не пишу, но для общего развития хочу понять как идет синтактический разбор. В общем понятно как работает, но вопросы есть.
zend_language_scanner.l
PHP:
LNUM [0-9]+
DNUM ([0-9]*[\.][0-9]+)|([0-9]+[\.][0-9]*)
EXPONENT_DNUM (({LNUM}|{DNUM})[eE][+-]?{LNUM})
HNUM "0x"[0-9a-fA-F]+
LABEL [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
WHITESPACE [ \n\r\t]+
TABS_AND_SPACES [ \t]*
TOKENS [;:,.\[\]()|^&+-/*=%!~$<>?@]
ENCAPSED_TOKENS [\[\]{}$]
ESCAPED_AND_WHITESPACE [\n\t\r #'.:;,()|^&+-/*=%!~<>?@]+
ANY_CHAR (.|[\n])
NEWLINE ("\r"|"\n"|"\r\n")
%option noyylineno
%option noyywrap
%%
строка 1407
<INITIAL>"<%="|"<?="