mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-24 01:15:29 +02:00
Fixes to the C99/UPC parsers. Fix NPE in C99ParserAction. Fix CCE in UPC parser. Fix problem with ## operator in C99Preprocessor. Fix problem with skipping inactive code in C99Preprocessor.
This commit is contained in:
parent
c18b4fba62
commit
34bb553c49
3 changed files with 1025 additions and 1037 deletions
|
@ -15,9 +15,10 @@
|
|||
%options import_terminals=D:\workspaces\cdt-head2\org.eclipse.cdt.core.parser.c99\src\org\eclipse\cdt\internal\core\dom\parser\c99\C99Lexer.g
|
||||
|
||||
|
||||
-- Unified Parallel C (UPC) is an extension of C99
|
||||
-- Unified Parallel C (UPC) is an extension of C99.
|
||||
-- Must set LPG_INCLUDE environment variable to the location of C99Parser.g
|
||||
$Import
|
||||
D:\workspaces\cdt-head2\org.eclipse.cdt.core.parser.c99\src\org\eclipse\cdt\internal\core\dom\parser\c99\C99Parser.g
|
||||
C99Parser.g
|
||||
$End
|
||||
|
||||
$Globals
|
||||
|
|
|
@ -91,7 +91,7 @@ public class UPCParser extends PrsStream implements RuleAction , IParserActionTo
|
|||
for (int i = 0; i < unimplemented_symbols.size(); i++)
|
||||
{
|
||||
Integer id = (Integer) unimplemented_symbols.get(i);
|
||||
System.out.println(" " + UPCParsersym.orderedTerminalSymbols[id.intValue()]); //$NON-NLS-1$
|
||||
System.out.println(" " + UPCParsersym.orderedTerminalSymbols[id.intValue()]);//$NON-NLS-1$
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
@ -115,7 +115,7 @@ public class UPCParser extends PrsStream implements RuleAction , IParserActionTo
|
|||
{
|
||||
int firsttok = super.getFirstErrorToken(error_token),
|
||||
lasttok = super.getLastErrorToken(error_token);
|
||||
String location = super.getFileName() + ':' +//$NON-NLS-1$
|
||||
String location = super.getFileName() + ':' +
|
||||
(firsttok > lasttok
|
||||
? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))//$NON-NLS-1$
|
||||
: (super.getLine(error_token) + ":" +//$NON-NLS-1$
|
||||
|
@ -633,13 +633,13 @@ public List getRuleTokens() {
|
|||
}
|
||||
|
||||
//
|
||||
// Rule 99: labeled_statement ::= case constant_expression : statement
|
||||
// Rule 99: labeled_statement ::= case constant_expression :
|
||||
//
|
||||
case 99: { action.beforeConsume(); action. consumeStatementCase(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 100: labeled_statement ::= default : statement
|
||||
// Rule 100: labeled_statement ::= default :
|
||||
//
|
||||
case 100: { action.beforeConsume(); action. consumeStatementDefault(); break;
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue