StatementStateFunction [ ] 是一个函数数组,它们都返回 StatementState 和 StateArray [GetInputToken(T)] [CurrentState] 是一个状态表,它告诉 StatementStateFunction [ ] 要调用哪个函数,但是编译器说它不能将 StatementFunc 分配给 StatementState 即使StatementStateFunction[] 中调用的方法都返回一个 StatementState
在 StatementTable.cpp 中
void StatementTable::BuildStatement (Token & T)
{
StatementState CurrentState (StartStatement);
do
{
CurrentState = StatementStateFunction [ StateArray[GetInputToken(T)][CurrentState] ];
}
while (CurrentState != StatementComplete);
}
在 StatementTable.h 中
typedef StatementState (*StatementFunc) (Token &);
static Token::UChar StateArray [NumTokeInputs] [NumberStates];
static StatementFunc StatementStateFunction [];