Я ищу способ разобрать только определенную часть файла.Например, давайте посмотрим:
if {$cpf_step == "pre_restruct"} {
create_power_domain -name domain_GPU_SW \
-shutoff_condition "!$mali_pso_condition_pin" \
-instances "$GPU_SW_instances_list"
} else {
create_power_domain -name domain_GPU_SW \
-shutoff_condition "!$mali_pso_condition_pin"
}
Мне интересны команды create_power_domain.У меня есть правило с другим токеном, используемым в нем.Вот правило, которое я использую [EDIT]. Конечно, есть вещи до и после этого извлечения, а также другие команды create_power_domain, которые меня интересуют. [/ EDIT]
file :list_of_statement
;
list_of_statement: statement
| list_of_statement statement
;
statement: power_domain
| T_EVERY_OTHER_THING_I_READ
;
power_domain: K_CREATE_POWERDOMAIN K_NAME K_IDENTIFIER options_list
Теперь, как вы понимаете, яЯ хочу только проверить, что каждый домен питания соответствует синтаксису, и я не хочу заботиться обо всем остальном.
В моем flex-токенизаторе я попытался
.* {return T_EVERY_OTHER_THING_I_READ; }
, но потом я вспомнил, что Lexпытается найти самое подходящее регулярное выражение, которое подразумевает, что теперь все будет токеном T_EVERY_OTHER_THING_I_READ, и я не найду мой K_CREATE_POWERDOMAIN, например.
Мой вопрос: как тогда игнорировать все, что не является частью правилаинтересуетесь?
если у вас есть дополнительные вопросы, не стесняйтесь спрашивать.
Спасибо