Я пытаюсь заменить текст токена из моей программы ввода на определенный форматированный текст. Я использую C# в качестве языка вывода.Заменить текст токена в ANTLR
Пример ввода:
time#1m2s
Мой закон грамматики для этого входа:
fragment
DIGIT : '0'..'9'
;
CTE_DURATION
: ('T'|'t'|'TIME'|'time') '#' '-'? (DIGIT ('d'|'h'|'m'|'s'|'ms') '_'?)+
;
Выходной маркер текст, который я хотел бы получить от входного примера:
0.0:1:2.0
Это означает: 0 дней, 0 часов, 1 минуту, 2 секунды и 0 миллисекунд.
Любые советы? Заранее спасибо.
Я не понимаю ваш вопрос, можно ли быть более конкретным? Ваш вопрос, что вы хотите, чтобы ваша грамматика принимала входные данные только в этом формате: 0.0: 1: 2.0? – sm13294
Моя лексическая грамматика принимает «время # 1m2s» и создает токен CTE_DURATION, текст которого «время # 1m2s». Я хочу, чтобы мое правило lex меняло токен CTE_DURATION (в моем примере я хочу изменить токены на «0.0: 1: 2.0»). –