home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.ada
- Path: sparky!uunet!caen!sol.ctr.columbia.edu!src.honeywell.com!tap
- From: tap@src.honeywell.com (Thomas A Peterson)
- Subject: Need new idea to get around sunada 1.0 error
- Message-ID: <1992Aug19.185609.10211@src.honeywell.com>
- Sender: news@src.honeywell.com (News interface)
- Nntp-Posting-Host: socrates.src.honeywell.com
- Organization: Honeywell Systems & Research Center
- Date: Wed, 19 Aug 1992 18:56:09 GMT
- Lines: 56
-
- I am using ayacc to develop a parser and have ran into a problem with
- the Sun Ada 1.0 compiler returning an internal assertion error.
-
- socrates: ada -O0 parser.a
- internal: assertion error at file lreg.c, line 174
- cg_ret: 1
- socrates:
-
- Parser.a contains a large case statement that is apparently larger
- than what the compiler can handle. I have talked to a Verdix employee
- about the problem and he told me to break up the case statement into
- smaller case statements but this has not helped.
-
- The case statement has 462 case statement alternatives each of which
- contains about 3 statements. I have tried three approaches to get
- around the problem so far but each still resulted in the same failure.
-
- Has anyone else experienced this problem and found a way around it?
-
- 1. Broke the single case statement down into about 90 smaller case
- statements, like the following chunk of code.
-
- case x is
- when 1 => statement1;
- when 2 => statement2;
- when 3 => statement3;
- when 4 => statement4;
- when 5 => statement5;
- when others => null;
- end case;
- ...
-
- 2. Broke the single case statement down into 461 separate 'if
- statements', like the following chunk of code.
-
- if x = 1 then
- statement1;
- end if;
- if x = 2 then
- statement2;
- end if;
- ...
-
- 3. Broke the single case statement down into one 'if then elsif
- statement', like the following chunk of code.
-
- if x = 1 then
- statement1;
- elsif x = 2 then
- statement2;
- ...
- end if;
-
- Any suggestions would be very much appreciated.
-
- Thanks, Tom
-