Как написать (shell) лексер вручную

Я работаю над оболочкой, небольшой оболочкой, похожей на bash, без сценариев (если while ...) Я должен создать лексер / парсер (LL) вручную.

Таким образом, лексер преобразует команду ( char * cmd ) в связанный список ( t_list * list ) . А анализатор LL преобразует связанный список ( t_list * list ) в AST (двоичное дерево t_btree * root ) с грамматикой

Итак, я знаю, как для создания парсера LL, но я не знаю, как токенизировать мою команду.

Например: ps | grep ls >> file; make && ./a.out

=> 'ps' '|' 'grep' 'ls' '>>' 'файл' ';' '' make '&&' './a.out'[1274ptingThanks.[1275 sizes( Я не хочу использовать никакой генератор)

5
задан mathieug 30 March 2011 в 20:13
поделиться