Все вопросы: [yacc]

65 вопросов

похожие теги:
3
голосов
3ответов
1217 просмотров

Проверьте переменную $$ Bison с помощью GDB

Если я установлю точку останова в файле Bison .y, есть ли способ проверить содержимое псевдопеременной $$ в этой точке останова?

3
голосов
2ответов
3580 просмотров

Левая рекурсия в грамматике приводит к конфликтам

На протяжении всей грамматики Bison я использую правую рекурсию, и я читал, что левая рекурсия лучше, потому что ей не нужно сначала создавать весь стек. Однако, когда я пытаюсь переключиться на левую рекурсию на любом из них, у меня всегда возникает множество конфликтов, и я не понимаю почем...

2
голосов
3ответов
1686 просмотров

Получение конечного автомата из грамматики BNF

Я пытаюсь собрать доказательство концепции XSS-безопасной схемы интерполяции строк. Учитывая строку с заменами, "Hello <b>$planetoid</b>!" Я хочу разбить его на буквальные части и заменить ("Hello<b>" planetoid "</b>!"), а затем запустить конечный автомат слева ...

5
голосов
1ответов
1701 просмотров

многопоточная среда flex / lex yacc / bison

Могу ли я использовать код, сгенерированный flex / bison | lex / yacc, в многопоточной среде?Боюсь, что есть много глобальных переменных.Как это исправить?

0
голосов
3ответов
5758 просмотров

Использование bison для анализа списка элементов

Я пишу компилятор для механизма затенения, и все работало нормально, пока я не добрался до части синтаксического анализа операторов. Я использовал абстрактное синтаксическое дерево , определенное с классами, для выполнения всей работы (для упрощения проверки типов и генерации промежуточного ...

2
голосов
4ответов
3183 просмотров

Заявление без предупреждения об отсутствии эффекта с GCC и Flex / Bison

При компиляции моего проекта с помощью gcc и опции -Wall я получаю предупреждение о том, что в последней строке моего файла flex, которая не существует, не действует: Предупреждение: gcc -Wall -O0 -ggdb3 -DNOSUDO -DJOBC -DDEBUG -c lex.yy.c tokenizer.l: In function ‘yylex’: tokenizer.l:1...

11
голосов
2ответов
1185 просмотров

Существуют ли отладчики грамматики Yacc?

Я помогал расширять проприетарный язык двадцатилетней давности в своей компании. Это большой, полный по Тьюрингу язык. Переводить его в другой режим грамматики (например, Antlr) нельзя (я не могу это решать). По большей части, расширение грамматики прошло гладко. Но время от времени я получаю...

30
голосов
5ответов
23338 просмотров

Эквивалент Yacc для Java

Я работаю над проектом разработки компилятора на Java. Лексический анализ выполнен (с использованием jflex), и мне интересно, какой инструмент, похожий на yacc, будет лучшим (наиболее эффективным, простым в использовании и т. Д.) Для выполнения синтаксического анализа и почему.

6
голосов
5ответов
5207 просмотров

Множественные парсеры flex / bison

Как лучше всего работать с несколькими синтаксическими анализаторами Flex / Bison внутри проекта? Я написал парсер, и теперь мне нужен второй в том же проекте.Пока что в третьем разделе parser1.y я вставил метод main(..) и вызвал оттуда yyparse. Я хочу получить два разных анализатора (pars...

4
голосов
2ответов
1823 просмотров

Предупреждение сборки Bison: "-s параметр задан, но можно сопоставить правило по умолчанию"

Я получаю предупреждение warning, -s option given but default rule can be matched если вы укажете параметр Google ", но можно сопоставить правило по умолчанию", вы найдете главу руководства Flex по диагностике и эту запись на старой странице руководства Flex в разделе "Диагностика": ...

2
голосов
1ответов
1738 просмотров

Обработка макросов #define в yacc / bison lex

Как реализовать макрос #define с помощью yacc / bison? Я думал, что все определяющие символы должны соответствовать обычной переменной.Переменные определены как [a-zA-Z_][a-zA-Z0-9_]*, поэтому я полагаю, что могу поставить там галочку, чтобы увидеть, сработала ли переменная с определением или...

15
голосов
1ответов
13864 просмотров

Simple Flex/Bison C++

I already looked for my answer but I didn't get any quick response for a simple example. I want to compile a flex/bison scanner+parser using g++ just because I want to use C++ classes to create AST and similar things. Searching over internet I've found some exploits, all saying that the only ne...

0
голосов
2ответов
698 просмотров

bison and lex string vs char

I'm trying to evaluate and expression of the form #SomeFunc[expr][expr]expr expr can be either a string composed from certain characters or a function as above. So this could look something like #SomeFunc[#SomeFunc[#SomeFunc[nm^2][nn]][nm]][n]... The problem is that if I brake into tokens ...

0
голосов
2ответов
4539 просмотров

Bison Syntax Error (Beginner)

I'm back and now writing my own language and my OS, but as I'm now starting in the development of my own development language, I'm getting some errors when using Bison and I don't know how to solve them. This is my *.y file code: input: | input line ; line: '\n' | exp '\n' ...

1
голосов
2ответов
2268 просмотров

multiple definition of `yyerror'

With Bison (or yacc) how do i solve the error multiple definition of `yyerror' I tried %option noyywrap nodefault yylineno and writing the prototype at the top. No luck. -edit- nevermind. when i copied paste an example to work with i didnt realize i had a yyerror function already.

1
голосов
1ответов
320 просмотров

parsing with bison

I bought Flex & Bison from O'Reilly but I'm having some trouble implementing a parser (breaking things down into tokens was no big deal). Suppose I have a huge binary string and what I need to do is add the bits together - every bit is a token: [0-1] { return NUMBER;} 1101010111111 Or f...

1
голосов
1ответов
97 просмотров

yacc/bison combined word problem

I have an if statement like the below if false { expr } It works, great! but i typed in iffalse { expr } and it works as well :| How do i fix that? the above should be a var name not an if statement -edit- nevermind i figured it out

3
голосов
2ответов
1054 просмотров

bison shift/reduce problem moving add op into a subexpr

Originally in the example there was this expr: INTEGER | expr '+' expr { $$ = $1 + $3; } | expr '-' expr { $$ = $1 - $3; } ; I wanted it to be 'more simple' so i wrote this (i realize it would do '+' for both add and subtract. But this is an ...

1
голосов
3ответов
1701 просмотров

Confusion about a Bison/YACC Grammar

With the following Grammar, I get a syntax error with this sort of input: ls /home > foo #Runs and works okay, but raises error token ls /home /foo /bar /etc #works okay I think it may have something to do with how lookahead works, but this is my first grammar and I am a bit confused about...

4
голосов
1ответов
432 просмотров

Parser/Lexer ignoring incomplete grammar rules

I have a parser and lexer written in ocamlyacc and ocamllex. If the file to parse ends prematurely, as in I forget a semicolon at the end of a line, the application doesn't raise a syntax error. I realize it's because I'm raising and catching EOF and that is making the lexer ignore the unfinished...

2
голосов
2ответов
3397 просмотров

How to do Variable Substitution with Flex/Lex and Yacc/Bison

Wikipedia's Interpolation Definition I am just learning flex / bison and I am writing my own shell with it. I am trying to figure out a good way to do variable interpolation. My initial approach to this was to have flex scan for something like ~ for my home directory, or $myVar , and then set ...

2
голосов
1ответов
4044 просмотров

Error Handing with Flex(lex) and Bison(yacc)

From the Bison Manual: In a simple interactive command parser where each input is one line, it may be sufficient to allow yyparse to return 1 on error and have the caller ignore the rest of the input line when that happens (and then call yyparse again). This is pretty much what ...

18
голосов
3ответов
17623 просмотров

Include struct in the %union def with Bison/Yacc

I am trying to include a struct as part of the union with Bison, but I get an error on the 'struct node args' in %union: parser.y:17: error: field ‘args’ has incomplete type The Code: struct node { char * val; struct node * next; }; %} %union { char * string; struct node a...

3
голосов
2ответов
6870 просмотров

How to build an Array with Bison/Yacc and a Recursive Rule

With Bison, I figured out how to get everything into one long string as follows: arg_list: WORD arg_list { strcat( $1, "IFS" ); $$ = strcat($1, $2); } | WORD ; and: WORD arg_list { printf("%s, %s\n", $1, $2); } But the problem is that I will then have to split up $2 in the seco...

0
голосов
2ответов
1484 просмотров

Allowing variable length lists in yacc

I'd like to be able to parse the following structure: blah { "string-1", "string-2", ..., "string-n" } I'm using flex to tokenize, and that's working perfectly. I'm using yacc (bison) for the parsing. What's the recommended way to allow this structure? Right now, in my test.y ...

4
голосов
2ответов
843 просмотров

Yacc/Bison, minimize amount by grouping math ops

I am looking at the calc source here http://epaperpress.com/lexandyacc/ I see theses lines in calc.y | expr '+' expr { $$ = opr('+', 2, $1, $3); } | expr '-' expr { $$ = opr('-', 2, $1, $3); } | expr '*' expr { $$ = opr('*', 2, $1, $3); } | expr '/' expr { $$ = ...

12
голосов
4ответов
4687 просмотров

Yacc/Jay grammar file for JavaScript?

Possible Duplicate: Where can I find a yacc gammar for ECMAscript/Actionscript/Javascript I'm trying to find a grammar file for JavaScript for Yacc (preferably for Jay, but since Jay is a Yacc clone I should be fine, since I need to implement it on .NET).

3
голосов
1ответов
490 просмотров

Creating a foreach keyword with yacc or Bison and Flex

I have developed a interpreted programming language. It is strongly based on C. The problem is, I want to add a foreach directive and have no clue how to. I am using Bison and Flex as the parser and lexer generator.

3
голосов
2ответов
685 просмотров

Implementing a XML translator using XML's EBNF

I'm contemplating the idea of implementing a XML translator using a compiler generator, based on the W3C's XML 1.1 spec, which includes a complete EBNF grammar. More precisely, I plan to use Qi-YACC because I want to learn this tool. It will be my first foray into using any compiler-compiler. T...

1
голосов
2ответов
3573 просмотров

How to initialize Bison's %union value?

In Bison I have a union %union { std::string* sval; } And I want to use it like this In Lex: *(yylval->sval) = "ABCD"; Rather than yylval->sval = new std::string("ABCD"); To prevent memory leaks easily However I need some way to allocated a std::string to sval to begin with. ...