Я хочу проанализировать файл .h с помощью пакетного скрипта. В файле .h есть некоторые, может быть Структуры выглядеть следующим образом:В пакетном режиме не удается правильно прочитать «*» из файла
typedef struct _sample {
int *a;
char* b;
float * c;
} Sample;
Как вы можете видеть, «*» может быть где-нибудь между типом данных и именем элемента. Ниже то, что я написал в моем .bat файл (упрощенно):
for /F "tokens=*" %%i in (sample.h) do (
for %%j in (%%i) do echo %%j
)
Что это .bat сделать, это повторить каждое слово, которое он читал, так как я упростил. Результат:
typedef
struct
_sample
{
int ::"*a" is skipped
b ::"char*" is skipped
float
sample.bat ::"*" is solved as reading current path files
sample.h
c
}
Sample
Так вопрос: Как я могу проанализировать эти 3 вида декларации указателя с «*» правильно?
Простой 'for' цикл использует' * '(а также'? ') В качестве маски, так что если какой-либо из пунктов после 'в' ключевое слово содержит такие,' for' доступ к файловой системе и производит поиск для сопоставления элементов, которые затем возвращаются в случае; если не используются подстановочные знаки, файловая система не имеет доступа, и элементы возвращаются напрямую 'for' ... – aschipfl
Это был бы большой шаг от сценариев cmd, но если вы действительно хотите проанализировать код, ANTLR будет хорошим выбор. Существует сильная поддержка синтаксиса языка C. http://www.antlr.org/ – lit