Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
КэтС
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 5
#1

[вопрос по YACC]Не получается поменять ассоциативность - C++

10.12.2011, 04:04. Просмотров 334. Ответов 0
Метки нет (Все метки)

Стартовое правило описано право-рекурсивно

list:
expr | list expr

В списке якка обрабатываеся набор правил, среди которых есть правило типа

| expr '+' expr

правило всегда выполняется начиная с первого выражения (т.е левоассоциативно).

Мне нужно, чтобы вначале вычислялось второе выражение, т.е, чтобы разбор шел справа.

менять ассоциативность операции '+' с %left на %right не помогает.
Присваивать правилу с помощью %prec ассоциативность другого правила (в том числе и фиктивного правила высшего приоритета) тоже не помогает.

Вроде как назначение ассоциативности %right перед токеном должно было все решить.

Подскажите пожалуйста, чего я здесь не понимаю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2011, 04:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос [вопрос по YACC]Не получается поменять ассоциативность (C++):

Lex и Yacc - C++
Привет всем!=) может кто-нибудь кинуть литературу по Lex и Yacc, уж очень надо=) заранее благодарен=)

Ассоциативность инкремента декремента - C++
Всем привет. Вот такую табличку недавно нашел - http://ru.cppreference.com/w/cpp/language/operator_precedence Почему префиксный...

самый простой вопрос который мог задать нуб!не получается подсчет слов!!!!! - C++
int wordCount(string a){ int i,c,n; c=n=0; i=1; while((c=a)!='\0'){ if(c==' ')++n; i++; } return n; }

С-2670 С++ попытался поменять значение, не получается - C++
// ConsoleApplication9.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> ...

не получается поменять местами элементы массива - C++
#include <iostream> using namespace std; int main() { int arr={1, 2, 3, 4, 5, 6}, temp; //массив до перестановки cout...

Простейший калькулятор на YACC - C++
Добрый вечер при написании калькулятора возникла затрудненость: Надо в калькулятор добавить "знак" остаток от деления. C приложеным...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2011, 04:04
Привет! Вот еще темы с ответами:

lexx/yacc некорректно анализирует - C++
Есть транслятор лексический выражений в ДНФ, но почему-то он не может считать входную строку, а именно знак "!" (не) он читает как "(", а...

Проверить ассоциативность при умножении матриц - C++
Делаю лабораторную с дискретной математики. Нужно проверить ассоциативность при умножении матриц. То есть в моем случае: M1* M2 =...

Поменять местами каждую пару чисел массива (не получается) - C++
Создать массив из 20 случайных чисел. Поменять местами каждую пару чисел. написал часть не получается поменять я просто не понимаю....

BISON YACC WINDOWS, требования к каталогу при установке - C++
Вот значит стандартный пример bison-овского файла %token TYPE DOTDOT ID %left '+' '-' %left '*' '/' %%


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.