LINUX.ORG.RU

парсинг выражений на шелле


0

0

нужно распарсить выражения вида:

(@9T) & !((! (@6T) & (@3T) & (@4T) | ! (@5T) ))

грубо говоря их нужно привести к чему-то типа КНФ. Неважно -- главное хоть как-то распарсить. Я коенчно могу построить AST, и обработать его как обычно. Но меня не покидает ощущение что на шелле можно сделать какой-то трюк с передачей этого выражения expr или awk, чтобы они распарсили его сами (они же все равно это умеют). Никаких идей?

★★★★★
Ответ на: комментарий от Intelligence

> Передайте выражение в awk. В чем проблема?

мне не нужно его _вычислить_. Мне нужно привести его к нормальной форме, чтобы потом своими методами его анализировать.

dilmah ★★★★★
() автор топика

echo '(@9T) & !((! (@6T) & (@3T) & (@4T) | ! (@5T) ))' | awk -F'&' '{print $1}'

и тд

x97Rang ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.