CUP is a parser generator for Java.
0 ответов

java_cup.runtime.Symbol "EOF" не был объявлен

Я уже читал эту дискуссию, но она мне не помогла. start with file; file ::= primario SEP secondario SEP terziario EOF {:fm.scriviDebug();:}; куда fm.scriviDebug() мой пользовательский класс, который печатает на stdout то, что анализировал CUP. Я пон…
20 май '17 в 23:16
1 ответ

Как создать лямбда-символ в jflex?

Я делаю синтаксический анализатор с jflex + javacup. На грамматике.cup у меня есть эта часть: SUBPPARAMLIST ::= lambda | "(" EXPLIST ")" Где лямбда ничего не значит (SUBPPARAMLIST может быть пустым) Что ж, мне удалось правильно создать все мои токен…
26 мар '16 в 06:40
1 ответ

Анализатор CUP возвращает синтаксическую ошибку для правильного ввода

Я пытаюсь написать очень простой парсер. Я использую JFlex с Java CUP. Вот мой код: LEX файл: import java_cup.runtime.*; %% %class Lexer %line %column %cup %{ /*********************************************************************************/ /* Cre…
29 ноя '16 в 13:55
1 ответ

Как определить синтаксис, который использует несколько черточек для вложенных инструкций "если"?

Я пытаюсь создать синтаксический анализатор в Java (используя CUP), который мог бы распознать этот кусок кода: if ¿b? then ~ a = 2; ~ if ¿b && c? then ~ ~ a = 3; else ~ a = 4; Мои произведения, использованные оператором if, следующие: Instr …
17 май '17 в 02:35
0 ответов

Как получить выражения, используя Java Cup для интерпретатора Java

Я создаю Интерпретатор, используя jflex и cup, но я не знаю, как реализовать вложенные операторы, если циклы else и т. Д. Я хочу знать, могу ли я получить выражение внутри оператора для его анализа si ::= SI LPAREN ID:id COMMA ENTERO:value RPAREN LB…
23 мар '17 в 23:21
1 ответ

Нужна помощь в создании AST из чашки на Java

Мне нужно создать AST в моем коде. Я создал классы Node и AST как вспомогательный класс. public class Node { private String value; private String type; private Boolean visited; private Node leftChild, rightChild; public Node(){ value=""; type=""; vi…
16 мар '11 в 09:27
1 ответ

Parser.cup с использованием CUP в Java

Я пытаюсь сделать компилятор в Java, и я использую CUP для генерации грамматики для синтаксиса. У меня есть этот Parser.cup /* Terminals (tokens returned by the scanner). */ terminal PLUS, MINUS; terminal TIMES, DIV, DIVINT; terminal LPAREN, RPAREN;…
1 ответ

Уменьшить / уменьшить конфликт в CUP

Я реализую парсер для подмножества Java с использованием Java CUP. Грамматика похожа vardecl ::= type ID type ::= ID | INT | FLOAT | ... exp ::= ID | exp LBRACKET exp RBRACKET | ... stmt ::= ID ASSIGN exp SEMI Это отлично работает, но когда я добавл…
1 ответ

Генератор синтаксического анализатора CUP LALR: предупреждение: производительность никогда не уменьшается

Это первый раз, когда я использую синтаксический анализатор CUP, и у меня постоянно появляется следующая ошибка: "warning: * production"... "никогда не используется. Не могу понять, что не так, пожалуйста, помогите. см. код и журнал ошибок прилагает…
24 дек '13 в 02:20
0 ответов

Соответствие регулярным выражениям в JFlex (Java)

Я пытаюсь разработать школьный проект, в котором я должен использовать регулярное выражение, чтобы соответствовать переменной "дата", но когда я пытаюсь использовать простое регулярное выражение, такое как /* REGULAR EXPRESIONS */ re_date = [0][1-9]…
04 мар '18 в 19:38
1 ответ

Разбор блоков как Python

Я пишу парсер lexer + в JFlex + CUP, и я хотел иметь подобный Python синтаксис относительно блоков; то есть отступ обозначает уровень блока. Я не уверен, как с этим справиться, и нужно ли это делать на лексическом или синтаксическом уровне. Мой теку…
01 май '18 в 17:08
1 ответ

Я получаю сдвиг / уменьшение конфликта с CUP

У меня есть следующий код разбора, но я получаю сдвиг / уменьшение конфликта между нетерминальным выражением и function_call. Это небольшой код разбора для языка программирования Visual Basic. Может ли CFG быть не прав? Или проблема только в этих дв…
16 сен '16 в 01:53
1 ответ

Я не могу сгенерировать парсер CUP и сканер JFlex в cmd

Я новичок в компиляторе. Я прочитал, что я могу сгенерировать файл xxx.flex в cmd с помощью этого кода: java JFlex.Main xxx.flex но я получил эту ошибку: Ошибка: не удалось найти или загрузить основной класс JFlex.Main и для создания yyy.cup я набра…
22 июн '16 в 18:35
0 ответов

JFlex/JavaCup Parser: Как проанализировать преднамеренные пробельные символы?

У меня проблема с анализом двух оставшихся программ. Я думаю, что моя проблема в том, что, возможно, в двух конкретных местах есть пробелы, которые я не знаю, как игнорировать во время разбора? Я включил две программы-примера. Я попытался включить Y…
26 мар '18 в 04:40
1 ответ

Как решить конфликт SHIFT/REDUCE - в генераторе парсера

Мне нужна помощь, чтобы решить эту проблему и объяснить, как бороться с этими конфликтами в будущем. У меня есть некоторые конфликты между несколькими состояниями в моем файле кубка. Граммер выглядит так: У меня есть конфликты между состояниями "(" …
27 ноя '13 в 06:36
1 ответ

Сдвиг / уменьшение конфликта в java cup - еще одна проблема

Я получаю следующую ошибку: Warning : *** Shift/Reduce conflict found in state #116 between Statement ::= Matched (*) and Unmatched ::= IF LPAREN Condition RPAREN Matched (*) ELSE Unmatched and Matched ::= IF LPAREN Condition RPAREN Matched (*) ELSE…
13 дек '15 в 17:34
0 ответов

Малый сдвиг / уменьшение конфликта в CUP

У меня небольшая проблема в попытке выяснить, как разрешить конфликт в моем проекте парсера CUP. Я понимаю, почему происходит ошибка, первый терминал VariableDeclStar может быть идентификатором, а также типом, который вызывает конфликт, однако я не …
07 мар '18 в 23:15
0 ответов

Как разрешить сдвиг / уменьшение конфликта в простой грамматике

Грамматика выглядит следующим образом: terminal TERM1,TERM2; non terminal entry, sector, unit_a, unit_b; entry ::= sector unit_b; sector ::= unit_a sector | unit_a; unit_a ::= TERM1 TERM1; unit_b ::= TERM1 TERM2; Когда я пытаюсь сгенерировать парсер…
09 ноя '17 в 19:35
1 ответ

Генерация дерева разбора с помощью Java CUP

Я использую CUP с JFlex для проверки синтаксиса выражения. У меня работает базовая функциональность: я могу сказать, является ли выражение допустимым или нет. Следующим шагом является реализация простых арифметических операций, таких как "добавить 1…
17 май '11 в 15:33
1 ответ

Если тогда еще двусмысленность в CUP

Я создаю грамматику в CUP, и я столкнулся с препятствиями при определении операторов IF-THEN-ELSE. Мой код выглядел так: start with statements; /* Top level statements */ statements ::= statement | statement SEPARATOR statements ; statement ::= if_s…
30 апр '18 в 16:38