Пытаясь понять, как Smarty компилирует - PullRequest
0 голосов
/ 29 декабря 2010

Может кто-нибудь объяснить, что означают эти массивы?

$yy_action

$yy_lookahead

$yy_shift_ofst

$yy_reduce_ofst

$yyExpectedTokens

$yy_default

$yyRuleInfo

$yyReduceMap

ОБНОВЛЕНИЕ

Что означает нижеследующее?

** Suppose the action integer is N.  Then the action is determined as
** follows
**
**   0 <= N < self::YYNSTATE                              Shift N.  That is,
**                                                        push the lookahead
**                                                        token onto the stack
**                                                        and goto state N.
**
**   self::YYNSTATE <= N < self::YYNSTATE+self::YYNRULE   Reduce by rule N-YYNSTATE.
**
**   N == self::YYNSTATE+self::YYNRULE                    A syntax error has occurred.
**
**   N == self::YYNSTATE+self::YYNRULE+1                  The parser accepts its
**                                                        input. (and concludes parsing)
**
**   N == self::YYNSTATE+self::YYNRULE+2                  No such action.  Denotes unused
**                                                        slots in the yy_action[] table.

1 Ответ

0 голосов
/ 29 декабря 2010

Как обозначено в http://code.google.com/p/smarty-php/source/browse/branches/Smarty3Dev/development/lexer/Lempar+Original.php?r=3662, это

... таблицы, используемые для определения действий на основе текущего состояния и маркера предварительного просмотра. Эти таблицы используются для реализации функций, которые принимают номер состояния и значение предварительного просмотра и возвращают целое число действия.

...