Описание тега javacc

JavaCC - компилятор компилятора Java - популярный генератор парсеров и генератор лексических анализаторов для Java и C++.
1 ответ

Как сделать пользовательские сообщения об исключениях JavaCC?

Я хочу начать с того, что знаю, что здесь существует похожий вопрос: как создавать конкретные сообщения об ошибках на основе исключений синтаксического анализа в JavaCC Но у меня нет необходимых 50 представителей, чтобы прокомментировать это, чтобы …
06 апр '17 в 12:20
0 ответов

JavaCC не совпадает с правильными токенами во время обработки ошибок

У меня возникли проблемы с использованием этого конкретного метода для решения проблем в моем парсере. Это мой код в Java: void handleErrors(Exception e, int kind, String strError) { //ParseException e = generateParseException(); System.err.println(…
17 июн '14 в 07:50
2 ответа

Javacc добавить операцию, вызывающую проблемы

Я пытаюсь создать простой синтаксический анализатор, но у меня возникли некоторые проблемы при попытке учесть необязательный знак перед первым элементом: void expr5() : {} { [addop()] expr6() (addop() expr6())* } например, [-] 5 + 3 - 4 здесь пробле…
07 янв '13 в 18:06
1 ответ

Какова цель JAVA_UNICODE_ESCAPE в JavaCC?

Какова цель JAVA_UNICODE_ESCAPE в JavaCC, я посмотрел на документацию, и она объясняет это очень смутно.
03 ноя '18 в 11:21
0 ответов

Ошибка javacc?? это дало мне знак, который я никогда не писал на входе

Я дал эту входную строку моему парсеру на основе javacc: " SELECT a\n.run_id,\nx.*" но это дало мне исключение: net.sf.jsqlparser.parser.ParseException: Encountered " ";" "; "" at line 3, column 1. Was expecting one of: "*" ... "*" ... at net.sf.jsq…
12 авг '15 в 18:53
0 ответов

Javacc Регулярное выражение для соответствия определенному типу строки?

Я пытаюсь написать регулярное выражение для токена, так что если строка передана "123" ", то строка должна быть 123" " Так как мой текущий регулярное выражение <T_STRING: "\"" (~["\""]|"^\"")* "\"" | "'"(~["'"]|"^'" )* "'" > Я не могу получить…
21 фев '14 в 21:43
2 ответа

Грамматика JavaCC - правильный лексинг

У меня есть грамматика JavaCC со следующими определениями: <REGULAR_IDENTIFIER : (["A"-"Z"])+ > // simple identifier like say "DODGE" <_LABEL : (["A"-"Z"])+ (":") > // label, eg "DODGE:" <DOUBLECOLON : "::"> <COLON : ":"> Пря…
21 фев '14 в 14:57
1 ответ

JavaCC: возможно ли использовать символьные классы POSIX для представления строк Unicode

Я могу использовать класс POSIX: \p{L} для представления всех возможных символов Юникода в классе Java Pattern. Однако я не могу использовать тот же шаблон регулярных выражений в javacc. Я попытался определить токен следующим образом <#LET: "\ p {L}…
14 апр '14 в 16:21
1 ответ

Как я могу переписать это CallExpression без рекурсии?

В настоящее время я работаю над грамматикой JavaCC для ECMAScript 5.1. Я немного новичок в JavaCC, поэтому буду признателен за помощь в следующем вопросе. § 11.2. Выражения в левой части определяют следующее CallExpression производство: CallExpressi…
05 ноя '14 в 11:46
0 ответов

Левая рекурсия JavaCC

Я пытаюсь удалить левую рекурсию для этой грамматики JavaCC. Я получаю ошибку, обнаруженную рекурсией Left, в минуту для условия, приведенной ниже, и я не могу понять, как ее исправить. Любая помощь будет принята с благодарностью:) void condition():…
10 ноя '17 в 21:39
1 ответ

Токен хотя бы один раз

Мне нужно использовать javaCC, чтобы определить правильный синтаксис от ошибок. &lt; #horario : "&lt;"&lt;hora&gt;":"&lt;minuto&gt;"-"&lt;hora&gt;":"&lt;minuto&gt;"&gt;"&lt;retorno&gt; &gt; &lt; #horarioError : "&lt;" ("()"|"(" (~["&lt;", "&gt;"])+"…
16 июн '15 в 09:49
1 ответ

Исключить расширения файлов для компилятора на основе Java?

Я обычно нахожу обходной путь для проблем, но на этот раз я не могу найти его. Я делаю компилятор для самостоятельно разработанного языка с использованием JavaCC. Раньше я просто использовал System.in для чтения файлов, поэтому я знаю, что мой компи…
2 ответа

Регулярные выражения: разница между "необязательным вхождением" и "нулем или более вхождением"

Я новичок в этих регулярных выражениях и не могу правильно понять значение необязательного вхождения и ноль или более вхождения (я использую регулярные выражения JavaCC) Например, если мне нужно сопоставить имя, например, "файл", который также может…
18 июн '16 в 03:45
2 ответа

Как построить абстрактное синтаксическое дерево с помощью JJTree?

При создании AST и добавлении дочерних элементов в дерево, в чем разница между: void NonTerminal #Nonterminal: { Token t;} { t = &lt;MULTIPLY&gt; OtherNonTerminal() {jjtThis.value = t.image;} #Multiply } а также: void NonTerminal : { Token t;} { t =…
1 ответ

JavaCC Token не соответствует

Я пытаюсь написать парсер для простого языка и дошел до того, что не знаю, как справиться с этой проблемой. Вот файл my.jj options { STATIC = false; LOOKAHEAD=2; //DEBUG_LOOKAHEAD = true; DEBUG_TOKEN_MANAGER=true; FORCE_LA_CHECK = true; DEBUG_PARSER…
05 июн '13 в 12:24
1 ответ

Метод дампа JavaCC для печати AST

Я использую JavaCC для печати AST в определенном формате. Мне нужно, чтобы это было так: LetNode( Identier(X), ExprNode( PlusNode( IntegerLiteral(8), IntegerLiteral(2) ))) но я получаю: Start(LetNode(Identifier(x)(ExprNode(IntegerLiteral(5)(PlusNode…
04 май '14 в 15:23
1 ответ

Разбор HTML в javacc

Я новичок в javacc и меня попросили расширить базовый html-разбор с использованием кода javacc. Мой вопрос - &lt;script&gt; содержит много символов - таких как &gt; а также &lt; которые имеют другие определения. Например - if(indexOf("?")) &gt; 3, Я…
21 сен '15 в 06:46
1 ответ

Как я могу использовать лексер JFlex с анализатором JavaCC?

Я пытаюсь научиться использовать JavaCC для написания парсера. Я уже сгенерировал лексер, используя JFlex, и он возвращает список токенов. Каждый токен - это его собственный класс. Я пишу правила производства, но, например, я не могу написать ";" по…
21 окт '15 в 19:57
1 ответ

Javacc Недоступное заявление

В моей грамматике есть производственные правила для выражений и фрагментов, которые изначально содержали косвенную левую рекурсию. Это правила после того, как я удалил из них рекурсию. String expression() #Expression : {String number; Token t;} { nu…
1 ответ

Удаление комментария C с JavaCC

Я знаю, как пропустить эти комментарии, используя объявления SKIP, но все, что мне нужно сделать, это взять источник C и вывести тот же источник без комментариев. Поэтому я объявил токен , который копируется в вывод, а комментарии не пропускаются. Я…
20 дек '12 в 09:59