bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] symbolic names


From: Alex Rozenman
Subject: [PATCH] symbolic names
Date: Mon, 30 Mar 2009 00:09:01 +0300

Hi Akim, Joel.

A new version is attached. I just implemented most of the proposals from our
previous thread. You can also see fragments of bison output messages below.
Meanwhile, I added some tests to the suite, but we'll need much more testing
- there are tens possible combinations of this stuff. You are welcome to try
it :)

(ordinary ambiguity)
if_stmt1: IF expr[cond] THEN stmt ELSE stmt FI
           { $if_stmt1 = new IfStmt($cond, $stmt, $stmt); };
interpreter.ypp:79.44-48: reference is ambiguous: `$stmt'
interpreter.ypp:78.30-33:   refers to: $stmt at $4
interpreter.ypp:78.40-43:   refers to: $stmt at $6
interpreter.ypp:79.51-55: reference is ambiguous: `$stmt'
interpreter.ypp:78.30-33:   refers to: $stmt at $4
interpreter.ypp:78.40-43:   refers to: $stmt at $6

(former "assymetric renaming")
if_stmt1: IF expr[cond] THEN stmt[then] ELSE stmt[else] FI
           { $if_stmt1 = new IfStmt($cond, $then, $stmt); };
interpreter.ypp:79.51-55: reference is misleading: `$stmt'
interpreter.ypp:78.30-33:   possibly meant: $stmt at $4, symbol hidden
interpreter.ypp:78.46-49:   possibly meant: $stmt at $6, symbol hidden

(reference to a symbol with dots)
if_stmt: IF expr[cond] THEN stmt.list FI
           { $if_stmt = new IfStmt($cond, $stmt.list, 0); };
interpreter.ypp:76.43-52: reference not found: `$stmt.list'
interpreter.ypp:75.29-37:   possibly meant: $[stmt.list] at $4

(refernce to a field)
if_stmt: IF expr[cond] THEN stmt FI
           { $if_stmt = new IfStmt($cond, $stmt.list, 0); };
<no errors>

(reference to a symbol with dots and a field)
if_stmt: IF expr[cond] THEN stmt.list FI
           { $if_stmt = new IfStmt($cond, $stmt.list.f1, 0); };
interpreter.ypp:76.43-55: reference not found: `$stmt.list.f1'
interpreter.ypp:75.29-37:   possibly meant: $[stmt.list].f1 at $4

(bracketed syntax for a symbol with dots)
if_stmt: IF expr[cond] THEN stmt.list FI
           { $if_stmt = new IfStmt($cond, $[stmt.list].f1, 0); };
<no errors>

(access from mid-rule action)
if_stmt: IF expr[cond] THEN { $if_stmt = $then; } stmt.list[then] ELSE
stmt.list[else] FI
  { $if_stmt = new IfStmt($cond, $then, $else); };
interpreter.ypp:78.31-38: reference not found: `$if_stmt'
interpreter.ypp:78.10-79.49:   possibly meant: $if_stmt at $$, cannot be
accessed from mid-rule action at $4
interpreter.ypp:78.42-46: reference not found: `$then'
interpreter.ypp:78.61-64:   possibly meant: $then at $5, cannot be accessed
from mid-rule action at $4

(ordinary "not found")
if_stmt1: IF expr[cond] THEN stmt[then] ELSE stmt[else] FI
           { $if_stmt1 = new IfStmt($cond1, $[then], $else); };
interpreter.ypp:82.37-42: reference not found: `$cond1'



-- 
Best regards,
Alex Rozenman (address@hidden).

Attachment: 0001-2009-03-29-Alex-Rozenman-rozenman-gmail.com.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]