Реализация парсера, основанного на peg.js, я заставляю добавить код для обработки комментариев в стиле c/*, как это * /.PEG.js - как разобрать комментарии в стиле c?
Мне нужно найти маркер конца, не съев его.
это не работает:
multi = '/*' .* '*/'
Послание:
line: 14
Expected "*/" or any character but end of input found.
Я понимаю, почему это не работает, но, к сожалению, я понятия не имею, как сделать разбора комментариев функциональны.
Вот код до сих пор:
start = item*
item = comment/content_line
content_line = _ p:content _ {return ['CONTENT',p]}
content = 'some'/'legal'/'values'
comment = _ p:(single/multi) {return ['COMMENT',p]}
single = '//' p:([^\n]*) {return p.join('')}
multi = 'TODO'
_ = [ \t\r\n]* {return null}
и некоторые примеры ввода:
// line comment, no problems here
/*
how to parse this ??
*/
values
// another comment
some legal
Работа! Большое спасибо. Я отправлю полный код. – Gisela