Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Kucera2007-07-25 21:54:05 +0000
committerMike Kucera2007-07-25 21:54:05 +0000
commit8f87510587b309bc0e4c71447c1286957d54e07f (patch)
treeb807d90ae872e367c06e3efe0e533524594c6065 /upc/org.eclipse.cdt.core.parser.upc
parent04e799d307c9ca10a9a86e689e17d54052d28641 (diff)
downloadorg.eclipse.cdt-8f87510587b309bc0e4c71447c1286957d54e07f.tar.gz
org.eclipse.cdt-8f87510587b309bc0e4c71447c1286957d54e07f.tar.xz
org.eclipse.cdt-8f87510587b309bc0e4c71447c1286957d54e07f.zip
Changes to C99 parser (in anticipation of adding C++ support): simplified the keyword maps, extracted a base class for the parser actions, created a better way to map tokens.
Diffstat (limited to 'upc/org.eclipse.cdt.core.parser.upc')
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeywordMap.java143
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java7
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.g1
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java7
4 files changed, 79 insertions, 79 deletions
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeywordMap.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeywordMap.java
index ab032f883bf..0795765572e 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeywordMap.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeywordMap.java
@@ -10,6 +10,7 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.parser.upc;
+import org.eclipse.cdt.core.dom.parser.c99.LPGKeywordMap;
import org.eclipse.cdt.core.dom.parser.c99.C99KeywordMap;
import org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym;
@@ -21,82 +22,84 @@ import org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym;
*
* @author Mike Kucera
*/
-public class UPCKeywordMap extends C99KeywordMap {
-
-
- public static final String
- MYTHREAD = "MYTHREAD",//$NON-NLS-1$
- THREADS = "THREADS",//$NON-NLS-1$
- UPC_MAX_BLOCKSIZE = "UPC_MAX_BLOCKSIZE",//$NON-NLS-1$
- relaxed = "relaxed",//$NON-NLS-1$
- shared = "shared",//$NON-NLS-1$
- strict = "strict",//$NON-NLS-1$
- upc_barrier = "upc_barrier",//$NON-NLS-1$
- upc_localsizeof = "upc_localsizeof",//$NON-NLS-1$
- upc_blocksizeof = "upc_blocksizeof",//$NON-NLS-1$
- upc_elemsizeof = "upc_elemsizeof",//$NON-NLS-1$
- upc_notify = "upc_notify",//$NON-NLS-1$
- upc_fence = "upc_fence",//$NON-NLS-1$
- upc_wait = "upc_wait",//$NON-NLS-1$
- upc_forall = "upc_forall";//$NON-NLS-1$
+public class UPCKeywordMap extends LPGKeywordMap {
public UPCKeywordMap() {
- putKeyword(MYTHREAD, UPCParsersym.TK_MYTHREAD);
- putKeyword(THREADS, UPCParsersym.TK_THREADS);
- putKeyword(UPC_MAX_BLOCKSIZE, UPCParsersym.TK_UPC_MAX_BLOCKSIZE);
- putKeyword(relaxed, UPCParsersym.TK_relaxed);
- putKeyword(shared, UPCParsersym.TK_shared);
- putKeyword(strict, UPCParsersym.TK_strict);
- putKeyword(upc_barrier, UPCParsersym.TK_upc_barrier);
- putKeyword(upc_localsizeof, UPCParsersym.TK_upc_localsizeof);
- putKeyword(upc_blocksizeof, UPCParsersym.TK_upc_blocksizeof);
- putKeyword(upc_elemsizeof, UPCParsersym.TK_upc_elemsizeof);
- putKeyword(upc_notify, UPCParsersym.TK_upc_notify);
- putKeyword(upc_fence, UPCParsersym.TK_upc_fence);
- putKeyword(upc_wait, UPCParsersym.TK_upc_wait);
- putKeyword(upc_forall, UPCParsersym.TK_upc_forall);
+ putKeyword(UPCParsersym.TK_MYTHREAD);
+ putKeyword(UPCParsersym.TK_THREADS);
+ putKeyword(UPCParsersym.TK_UPC_MAX_BLOCKSIZE);
+ putKeyword(UPCParsersym.TK_relaxed);
+ putKeyword(UPCParsersym.TK_shared);
+ putKeyword(UPCParsersym.TK_strict);
+ putKeyword(UPCParsersym.TK_upc_barrier);
+ putKeyword(UPCParsersym.TK_upc_localsizeof);
+ putKeyword(UPCParsersym.TK_upc_blocksizeof);
+ putKeyword(UPCParsersym.TK_upc_elemsizeof);
+ putKeyword(UPCParsersym.TK_upc_notify);
+ putKeyword(UPCParsersym.TK_upc_fence);
+ putKeyword(UPCParsersym.TK_upc_wait);
+ putKeyword(UPCParsersym.TK_upc_forall);
// The keyword token mappings from the superclass must be overridden.
// This is because LPG generates totally different values for token
- // kinds every time you genereate a parser.
- putKeyword(AUTO, UPCParsersym.TK_auto);
- putKeyword(BREAK, UPCParsersym.TK_break);
- putKeyword(CASE, UPCParsersym.TK_case);
- putKeyword(CHAR, UPCParsersym.TK_char);
- putKeyword(CONST, UPCParsersym.TK_const);
- putKeyword(CONTINUE, UPCParsersym.TK_continue);
- putKeyword(DEFAULT, UPCParsersym.TK_default);
- putKeyword(DO, UPCParsersym.TK_do);
- putKeyword(DOUBLE, UPCParsersym.TK_double);
- putKeyword(ELSE, UPCParsersym.TK_else);
- putKeyword(ENUM, UPCParsersym.TK_enum);
- putKeyword(EXTERN, UPCParsersym.TK_extern);
- putKeyword(FLOAT, UPCParsersym.TK_float);
- putKeyword(FOR, UPCParsersym.TK_for);
- putKeyword(GOTO, UPCParsersym.TK_goto);
- putKeyword(IF, UPCParsersym.TK_if);
- putKeyword(INLINE, UPCParsersym.TK_inline);
- putKeyword(INT, UPCParsersym.TK_int);
- putKeyword(LONG, UPCParsersym.TK_long);
- putKeyword(REGISTER, UPCParsersym.TK_register);
- putKeyword(RESTRICT, UPCParsersym.TK_restrict);
- putKeyword(RETURN, UPCParsersym.TK_return);
- putKeyword(SHORT, UPCParsersym.TK_short);
- putKeyword(SIGNED, UPCParsersym.TK_signed);
- putKeyword(SIZEOF, UPCParsersym.TK_sizeof);
- putKeyword(STATIC, UPCParsersym.TK_static);
- putKeyword(STRUCT, UPCParsersym.TK_struct);
- putKeyword(SWITCH, UPCParsersym.TK_switch);
- putKeyword(TYPEDEF, UPCParsersym.TK_typedef);
- putKeyword(UNION, UPCParsersym.TK_union);
- putKeyword(UNSIGNED, UPCParsersym.TK_unsigned);
- putKeyword(VOID, UPCParsersym.TK_void);
- putKeyword(VOLATILE, UPCParsersym.TK_volatile);
- putKeyword(WHILE, UPCParsersym.TK_while);
- putKeyword(_BOOL, UPCParsersym.TK__Bool);
- putKeyword(_COMPLEX, UPCParsersym.TK__Complex);
- putKeyword(_IMAGINARY, UPCParsersym.TK__Imaginary);
+ // kinds every time you generate a parser.
+ putKeyword(UPCParsersym.TK_auto);
+ putKeyword(UPCParsersym.TK_break);
+ putKeyword(UPCParsersym.TK_case);
+ putKeyword(UPCParsersym.TK_char);
+ putKeyword(UPCParsersym.TK_const);
+ putKeyword(UPCParsersym.TK_continue);
+ putKeyword(UPCParsersym.TK_default);
+ putKeyword(UPCParsersym.TK_do);
+ putKeyword(UPCParsersym.TK_double);
+ putKeyword(UPCParsersym.TK_else);
+ putKeyword(UPCParsersym.TK_enum);
+ putKeyword(UPCParsersym.TK_extern);
+ putKeyword(UPCParsersym.TK_float);
+ putKeyword(UPCParsersym.TK_for);
+ putKeyword(UPCParsersym.TK_goto);
+ putKeyword(UPCParsersym.TK_if);
+ putKeyword(UPCParsersym.TK_inline);
+ putKeyword(UPCParsersym.TK_int);
+ putKeyword(UPCParsersym.TK_long);
+ putKeyword(UPCParsersym.TK_register);
+ putKeyword(UPCParsersym.TK_restrict);
+ putKeyword(UPCParsersym.TK_return);
+ putKeyword(UPCParsersym.TK_short);
+ putKeyword(UPCParsersym.TK_signed);
+ putKeyword(UPCParsersym.TK_sizeof);
+ putKeyword(UPCParsersym.TK_static);
+ putKeyword(UPCParsersym.TK_struct);
+ putKeyword(UPCParsersym.TK_switch);
+ putKeyword(UPCParsersym.TK_typedef);
+ putKeyword(UPCParsersym.TK_union);
+ putKeyword(UPCParsersym.TK_unsigned);
+ putKeyword(UPCParsersym.TK_void);
+ putKeyword(UPCParsersym.TK_volatile);
+ putKeyword(UPCParsersym.TK_while);
+ putKeyword(UPCParsersym.TK__Bool);
+ putKeyword(UPCParsersym.TK__Complex);
+ putKeyword(UPCParsersym.TK__Imaginary);
+
+
+ addBuiltinType(UPCParsersym.TK_char);
+ addBuiltinType(UPCParsersym.TK_double);
+ addBuiltinType(UPCParsersym.TK_float);
+ addBuiltinType(UPCParsersym.TK_int);
+ addBuiltinType(UPCParsersym.TK_long);
+ addBuiltinType(UPCParsersym.TK_short);
+ addBuiltinType(UPCParsersym.TK_signed);
+ addBuiltinType(UPCParsersym.TK_unsigned);
+ addBuiltinType(UPCParsersym.TK_void);
+ addBuiltinType(UPCParsersym.TK__Bool);
+ addBuiltinType(UPCParsersym.TK__Complex);
+ addBuiltinType(UPCParsersym.TK__Imaginary);
+ }
+
+
+ protected String[] getOrderedTerminalSymbols() {
+ return UPCParsersym.orderedTerminalSymbols;
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java
index 1f2e5f14fad..e24f76e9f1d 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java
@@ -42,12 +42,11 @@ import org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym;
public class UPCParserAction extends C99ParserAction {
private final UPCASTNodeFactory nodeFactory;
- private final ASTStack astStack;
- public UPCParserAction(IParserActionTokenProvider parser, ITokenMap tokenMap) {
- super(parser, tokenMap);
- this.astStack = super.getASTStack();
+ public UPCParserAction(IParserActionTokenProvider parser) {
+ super(parser);
+ super.setTokenMap(UPCParsersym.orderedTerminalSymbols);
this.nodeFactory = (UPCASTNodeFactory) super.getNodeFactory();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.g b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.g
index e67ec75c7aa..0d05e725d99 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.g
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.g
@@ -30,7 +30,6 @@ import org.eclipse.cdt.internal.core.dom.parser.c99.C99Lexer;
import org.eclipse.cdt.internal.core.dom.parser.c99.C99Parsersym;
import org.eclipse.cdt.core.dom.parser.upc.UPCKeywordMap;
import org.eclipse.cdt.core.dom.parser.upc.UPCParserAction;
-import org.eclipse.cdt.internal.core.dom.parser.c99.C99TokenMap;
./
$End
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java
index 6c5850a5e3d..6dce734dc93 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java
@@ -34,7 +34,6 @@ import org.eclipse.cdt.internal.core.dom.parser.c99.C99Lexer;
import org.eclipse.cdt.internal.core.dom.parser.c99.C99Parsersym;
import org.eclipse.cdt.core.dom.parser.upc.UPCKeywordMap;
import org.eclipse.cdt.core.dom.parser.upc.UPCParserAction;
-import org.eclipse.cdt.internal.core.dom.parser.c99.C99TokenMap;
public class UPCParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser
{
@@ -92,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()]);
}
System.out.println();
}
@@ -173,7 +172,7 @@ public class UPCParser extends PrsStream implements RuleAction , IParserActionTo
}
-private UPCParserAction action = new UPCParserAction (this, new C99TokenMap(UPCParserprs.orderedTerminalSymbols));
+private UPCParserAction action = new UPCParserAction (this);
private List commentTokens = new ArrayList();
private IKeywordMap keywordMap = new UPCKeywordMap ();
@@ -203,7 +202,7 @@ public List getCommentTokens() {
public void resetTokenStream() {
super.resetTokenStream();
- action = new UPCParserAction (this, new C99TokenMap(UPCParserprs.orderedTerminalSymbols));
+ action = new UPCParserAction (this);
commentTokens = new ArrayList();
}

Back to the top