1
Учитывая вход [tag] Content [inner-tag] Inner [/inner-tag][/tag]
, как бы я проверил, есть ли закрытие [/tag]
, что соответствует [tag]
?Обратный ссылки с peg.js
Сейчас мои правила проверки, чтобы увидеть, если следующий непосредственный тег совпадает с последним открывающим тегом:
tagblock =
opentag:opentag content:content? closetag:closetag
{ if(opentag.name != closetag.name) {
throw new this.SyntaxError("No closing tag found for " + opentag.name);
} else {
return { name:opentag.name, content:content }
}
}
Это работает с [tag] Content [/tag]
, но не с вложенным вводом выше.
Как вы обрабатываете внутреннюю рекурсию, как это, с помощью peg.js?
Спасибо! Я думаю, что мы нашли XML-пример (https://gist.github.com/dmajda/7688943). Моя новая проблема заключается в том, как разрешить одиночные элементы, т. Е. Те, у которых нет закрывающего тега. Как в '[tag] Content [single] [/ tag]'. Я экспериментировал с негативными взглядами, но пока ничего не добился. Есть идеи? – fusepilot
Конечно, но было бы лучше задать другой вопрос; или, по крайней мере, обновить этот вопрос и заголовок, чтобы инкапсулировать этот вопрос. – TML
Ха, был в процессе выполнения всего этого, вот он: https://stackoverflow.com/questions/26089940/xml-single-node-parsing-with-peg-js. Благодарю. – fusepilot