2016-05-19 2 views
1

Я хочу, чтобы просмотреть файл сборки с DejaGnu для:DejaGNU скан-ассемблер регулярное выражение

ld.h% d2,

Но я не могу объяснить характер точек и цифровой символ. Я попробовал следующее: (один символ, два обратных слэша и брекетинг)

/* { dg-final { scan-assembler-times "ld\.h\t%d\d," 1 { target { tricore-*-* } } } } */ 
/* { dg-final { scan-assembler-times "ld\\.h\t%d\\d," 1 { target { tricore-*-* } } } } */ 
/* { dg-final { scan-assembler-times "ld[.]h\t%d[0-9]," 1 { target { tricore-*-* } } } } */ 
  1. Случай с одной обратной косой черты: она просто исчезает, так что смысл регулярное выражение меняется.
  2. С двумя обратными косыми чертами: он сохраняет оба из них, поэтому совпадений во время сканирования нет.
  3. С кронштейнами: появляется ошибка.

Выход:

Running ../../../../testsuite/mytest/TX-1234.exp ... 
PASS: testsuite/mytest/size16.c (test for excess errors) 
FAIL: testsuite/mytest/size16.c scan-assembler-times \tld.h\t%dd, 1 
FAIL: testsuite/mytest/size16.c scan-assembler-times \tld\\.h\t%d\\d, 1 
ERROR: (DejaGnu) proc "." does not exist. 

Итак, как же я объяснить \. характер или \d десятичного один?

ответ

0

это:

(ld\.h \%d\d\,) 

будет проверять ld.h% d2, но вы должны проверить, если он не принимает неправильные результаты в дополнение ко всем необходимым и Твик, если это так. наслаждаться

+0

Это выражение также не работает. Парсер DejaGnu не является регулярным парсером RegEx. – Tannis

0

Выражение проходит через фильтр, поэтому правильное объяснение точечного характера \\\. (\\\. ->\.). \ D не работает в DejaGnu. Вместо этого используйте \[0-9\] (\[0-9\] ->[0-9]).

Смежные вопросы