Описание тега jison
Генератор парсеров для JavaScript.
0
ответов
Как правильно использовать группы EBNF в Jison
Я пытаюсь выяснить, как справиться с ситуацией, возникающей при использовании расширения EBNF в Jison (Jison по умолчанию поддерживает только BNF - вы можете активировать эту опцию по мере необходимости). Я пытаюсь написать простой парсер XML. В XML…
09 дек '13 в 19:41
1
ответ
Объединить подобные конструкции в рекурсивных правилах
Это для парсера в Jison, но я думаю, то же самое относится и к Bison. У меня есть правило, которое имеет определение для выражения. expr : NUMBER -> { type: "number", value: $1 } | "(" expr ")" -> $2 | expr "+" expr -> { type: "+", left: $1…
29 июн '17 в 07:43
1
ответ
Определение грамматики jison приводит к неверному распознаванию токена
Недавно я нашел проект jison и изменил пример калькулятора с его сайта. ( http://zaach.github.io/jison/demos/calc/) /* lexical grammar */ %lex %% "a" return 'TOKEN1' "b" return 'TOKEN2' <<EOF>> return 'EOF' . return 'INVALID' /lex %start…
20 фев '15 в 21:13
2
ответа
Как получить абстрактное синтаксическое дерево (AST) из анализатора JISON?
Итак, я сгенерировал парсер через JISON: // mygenerator.js var Parser = require("jison").Parser; // a grammar in JSON var grammar = { "lex": { "rules": [ ["\\s+", "/* skip whitespace */"], ["[a-f0-9]+", "return 'HEX';"] ] }, "bnf": { "hex_strings" :…
11 дек '11 в 20:19
0
ответов
Что-то плохое с моей грамматикой
Я использую jison, и я видел документацию по грамматикам ebnf, но я не могу заставить мои грамматические работы работать: Вот изображения моей грамматики, ввода и ошибки. В ошибке грамматика распознает только одну строку, но kleen star должен распоз…
03 май '18 в 00:00
0
ответов
Контекстуальные условия при построении программы AST для C
Я пишу интерпретатор для C (подмножество) в Javascript (я хочу обеспечить визуализацию выполнения программы в браузере). В качестве первого шага я хочу создать дерево AST для пользовательской программы. Для этого я использую Jison, который похож на …
10 мар '15 в 14:11
2
ответа
Является ли грамматика Гроффа LALR(1)?
Как домашний проект, я пытаюсь создать синтаксический анализатор groff с Jison (клон Bison на JavaScript), но я изо всех сил пытаюсь понять, является ли грамматика groff LALR(1). У кого-нибудь есть понимание этого? Заранее спасибо. Обновление 1 В от…
06 ноя '15 в 19:54
1
ответ
ДЖИЗОН: почему в регулярном выражении используется "." вместо \.?
Из примера на http://zaach.github.io/jison/docs/ [0-9]+("."[0-9]+)?\b return 'NUMBER'; почему в этом регулярном выражении используется "." вместо \.?
15 дек '13 в 16:13
1
ответ
Jison / Flex: Попытка перехватить что-нибудь (.*) Между двумя токенами, но возникли проблемы
В настоящее время я работаю над небольшим маленьким DSL, мало чем отличающимся от Rabl. Я борюсь с выполнением одного из моих правил. Прежде чем мы перейдем к проблеме, я немного объясню свой синтаксис / грамматику. На моем небольшом языке вы можете…
30 апр '14 в 22:33
1
ответ
Приоритет оператора Jison
Я разрабатываю язык с использованием Jison, и проблема, с которой я сталкиваюсь, заключается в приоритете операторов. Я хочу, чтобы операторы сравнения были первыми операторами, которые будут оценены, например, 1 + 2 < 3 - 3 * 4 станет (1+2) <…
15 дек '14 в 21:11
0
ответов
Jison: получить имя токена
Как получить доступ к имени токена "NUMBER"? | NUMBER {$$ = /* "NUMBER" */;} Я не мог найти ничего полезного console.log(yy),
29 ноя '14 в 00:34
1
ответ
JISON Recursion Для чтения всего входного текста после токена
Я очень плохо знаком с парсером /cfg или jison. Я хочу, чтобы моя грамматика: Читать все после токена АДРЕС к EOF Между "ADDRESS TO EOF" может быть несколько токенов ADDRESS (из шага 1) Мой пример ввода выглядит так: ...abc xyz address 101 My Street…
25 июл '16 в 12:13
1
ответ
Уменьшите / уменьшите конфликт в грамматике клика в jison
Я работаю над компилятором языка клик, используя пакет Jison. Я пошел очень хорошо, пока я не ввел классы, таким образом, Type может быть LITERAL сейчас. Вот упрощенная грамматика: %lex %% \s+ /* skip whitespace */ int return 'INTEGER' string return…
17 дек '15 в 12:50
1
ответ
Парсер Jison останавливается после первого правила
У меня есть простой формат файла, который я хочу проанализировать с помощью генератора разбора jison. Этот файл может состоять из нескольких выражений в произвольном порядке и количестве. Вот файл jison для парсера: /* lexical grammar */ %lex %% \s+…
27 ноя '15 в 05:52
1
ответ
Использование Jison для преобразования списка команд в массив объектов
Я пытаюсь использовать Jison, который является JS-портом Bison, генератором парсера. Моя цель - преобразовать этот вход: foo(10) bar() foo(28) baz(28) в это: [ { func: 'foo', arg: 10 }, { func: 'bar' }, { func: 'foo', arg: 28 }, { func: 'baz', arg: …
04 фев '18 в 20:03
1
ответ
Каковы строки%lex и /lex в jison?
Ниже приведен фрагмент кода: http://zaach.github.io/jison/demos/calc/, а также страница документации jison. После прочтения документации jison, lex и flex - я все еще не до конца понимаю синтаксис%lex и / lex. Это специфично для генератора сканера j…
13 май '14 в 04:16
1
ответ
Токены JISON, использующие одинаковые символы
У меня есть некоторые проблемы с использованием JISON. Я пытаюсь сопоставить 2 строки в квадратных скобках, разделенных точкой. Проблема, с которой я сталкиваюсь, заключается в том, что если любая из строк начинается с цифры или минуса, она обнаружи…
07 ноя '17 в 15:45
1
ответ
Как вы сопоставляете ноль или более жетонов в Jison?
Я пишу простой синтаксический анализатор выражений в Jison, позволяющий произвольному количеству новых строк следовать бинарному оператору в выражении. Это моя грамматика до сих пор: { "operators": [ ["left", "+", "-"], ["left", "*", "/", "%"] ], "b…
04 апр '13 в 04:12
2
ответа
Джейсон игнорирует одно из моих правил
Я пытаюсь использовать Jison. Вот моя грамматика: var grammar = { lex:{ rules:[ ["\\s+", ""], ["then", "return 'newline';"], ["goto", "return 'goto';"], ["http[^\\s]*", "return 'url';"], ["search", "return 'search';"], ["should_exist", "return 'exis…
23 фев '14 в 01:13
2
ответа
Как обнаружить новую линию в Jison?
У меня есть кусок кода Jison, который выглядит следующим образом: %lex %options flex %{ if (!('regions' in yy)) { yy.regions = []; } %} text [a-zA-Z][a-zA-Z0-9]* %% \s+ /* skip whitespace */ \n+ return 'NL'; "," return ','; "-" return '-'; "[" retur…
31 май '16 в 16:03