On Sat, 7 Feb 2015, Georg Icking-Konert wrote:
> hi Maarten, hi Erik,
>
> thanks a lot by your feedback! Below I got 2 contradicting opinions: if I
> understand Erik right, there is no easy fix to this problem and I should
> just skip the declaration in the interrupt header file (like for
> Raisonance). That will do of course, but it would prohibit 100%
> compatibility with the examples and libs provided by STM on their homepage.
> So, before I go for this option: Maarten, can you confirm or reject Eriks
> statement (in contrast to first gut feeling), i.e. this won?t be supported by
> SDCC anytime soon? For your feedback thanks a lot in advance!
>
> Georg
The problems with the ambiguity are not insurmountable. There are other
places in the C language with ambiguity in the parsing. The most obvious
is how "else" gets associated with "if":
if (condition1)
if (condition2)
statement1;
else
statement2;
>From a grammar standpoint, the else could be associated with either "if
(condition1)" or "if (condition2)". The C language specifies that it
should be associated with "if (condition2)" and (hopefully) everyone who
programs in C knows and expects this.
Changing the grammar to support the function attributes either before or
after the function name and parameters, is fairly simple, but caused bison
(the parsar generator) to see roughly 30 new shift/reduce conflicts
(grammar ambiguities). I also tried just the interrupt attribute rather
than all of the function attributes; this still added 2 new shift/reduce
conflicts.
In the past SDCC has had a number of bugs related to properly handling
function pointer types. So I am hesitant to commit a change to the grammar
that increases the ambiguities in this area without having a really clear
understanding of the result. This proposed change has, at least for me,
moved beyond a quick and simple change to something that would require
more study before I would feel comfortable. I can't speak for the other
developer's priorities, but this would be low priority for me; I have only
spent the time that I have on it because it initially seemed a simple and
straightforward change.
Erik
------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user