Solved

example in yacc

Posted on 1998-11-16
10
218 Views
Last Modified: 2010-04-15
Could some one write and example program in yacc that shows how to use the pseudovariables $1,$2,etc.. to get the value of a variable and puts it in a char variable?
Thanks
Will give more points later.
0
Comment
Question by:laeuchli
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
  • 2
  • +2
10 Comments
 
LVL 5

Author Comment

by:laeuchli
ID: 1254320
come on guys, a comment at least.
0
 

Expert Comment

by:mkahlert
ID: 1254321
Here's an example, perhaps this helps:

actualparams
      :S_LB actualparamlist S_RB
            { $$ = $2; }
      |
            { $$ = NULL; }
      ;

The $1 is the first term of the definiton, $2 the second, and so on.
e.g.

term: '(' term ')'
   -> $1 = '('
   -> $2 = term
   -> $3 = ')'
And: $$ is the result (the left side, "term").
0
 
LVL 3

Expert Comment

by:elfie
ID: 1254322


Sorry don't have time to make a small  example  but you cvan check

http://www.cs.um.edu.mt/~hzarb/CSM201/notes/lecture13/node24.html
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 3

Expert Comment

by:elfie
ID: 1254323
another exaple and 'manuals'

http://www-iiuf.unifr.ch/idp/applications/bison.html

check here the infix notation calculator: calc (23.0)

ps: remember bison is the GNU equivalent of yacc.
0
 
LVL 5

Author Comment

by:laeuchli
ID: 1254324
sorry, mkahlert,I want more complete sample code.Start from the start of a yacc program.

0
 
LVL 27

Expert Comment

by:BigRat
ID: 1254325
>> Will give more points later.

Should give the point now! (to elfie)
0
 

Expert Comment

by:avigon
ID: 1254326
Very easy, it only recognizes this expression: "1+2", but it works.

Code:

%%

result: '1' '+' '2'
          { $$ = $1 + $3; }

%%

it parses that expression and gives to the "result" ($$), the value of the addition of '1' ($1) and '2' ($3). In this case, $2 is '+'.

You must do now a mini-lex and a main, that can be defined in the yacc-file if you want... Anyway as mkahlert pointed, the idea is that the variables $1,... represent the values of the respective position-field. In the example $$ = value of "result", and if we use a rule like this:

  result : var '+' var

the variables $1 and $3 will have the value of each var, that is is you parse the string: 1+2, "result" will store the value 3 at the end of the parsing.





0
 
LVL 5

Author Comment

by:laeuchli
ID: 1254327
well how do you print the value of $$?

0
 

Accepted Solution

by:
avigon earned 10 total points
ID: 1254328
You just put:


%%

result: '1' '+' '2'
                { $$ = $1 + $3;
                   printf("%d",$$);  }

%%

For example.
0
 
LVL 5

Author Comment

by:laeuchli
ID: 1254329
Ok,but what if I wanted to do this with a char? and is the one and two the first two of the tokens for that section or for the whole program. Thanks.

0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Have you thought about creating an iPhone application (app), but didn't even know where to get started? Here's how: ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Important pre-programming comments: I’ve never tri…
This tutorial is posted by Aaron Wojnowski, administrator at SDKExpert.net.  To view more iPhone tutorials, visit www.sdkexpert.net. This is a very simple tutorial on finding the user's current location easily. In this tutorial, you will learn ho…
Video by: Grant
The goal of this video is to provide viewers with basic examples to understand and use for-loops in the C programming language.
The goal of this video is to provide viewers with basic examples to understand how to create, access, and change arrays in the C programming language.

724 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question