When a case-insensitive constructor is defined like this:
=====
[eric@~/workspace/dev]$ cat Main.sdf
module Main
exports
context-free start-symbols Bool

context-free syntax
‘true’ -> Bool {cons(“True”)}

lexical syntax
[
] -> LAYOUT

context-free restrictions
LAYOUT? -/- [
]
====

A parsing of the string “true” is expected to result in:
True();

But the current result is:
=====
[eric@~/workspace/dev]$ sglri -i exp -p Main.tbl -s Bool | pp-aterm
True(
appl(
prod(
[ char-class([84, 116])
, char-class([82, 114])
, char-class([85, 117])
, char-class([69, 101])
]
, cilit(“true”)
, no-attrs()
)
, [116, 114, 117, 101]
)
)
====
The attributes are useful, but unwanted after implosion?

Submitted on 29 January 2007 at 21:48

On 30 January 2007 at 01:04 Jira commented:

STR-693, martin:
Thanks for the example :) We’ll take a look.


On 30 January 2007 at 18:54 Jira commented:

STR-693, martin:
Ok, most of the issues have been fixed now with revision 16601.

You might find more bugs, since ignoring literals is part of several tools that all break with the new cilit. sdf2rtg and sdf2parenthesize have been fixed now, but there might be more tools that have problems.

Log in to post comments