Это второй вопрос, связанный с Пользовательскими объектами в действиях ParseKit а>
Если бы у меня было правило грамматики, такое как:
qualifiedTableName = (databaseName '.')? tableName (('INDEXED' 'BY' indexName) | ('NOT' 'INDEXED'))?;
Правильно ли предположить, что действие не будет вызвано до тех пор, пока правило не будет сопоставлено? Итак, в этом случае, когда действие вызывается в стеке, это может выглядеть так:
possibly:
|'INDEXED'
|'NOT'
or:
|indexName (A custom object possibly)
|'BY'
|'INDEXED
|tableName (for sure will be here)
and possibly these
|'.' (if this is here I know the database name must be here) if not push last one on?
|databaseName
--------------(perhaps more things from other rules)
Это правильные оценки? Есть ли другая документация по действиям? Я знаю, что он в значительной степени основан на Antlr, но его тонкие отличия могут действительно доставить вам неприятности.