Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/xlc/XlcGrammarExtensions.g')
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/xlc/XlcGrammarExtensions.g82
1 files changed, 82 insertions, 0 deletions
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/xlc/XlcGrammarExtensions.g b/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/xlc/XlcGrammarExtensions.g
new file mode 100644
index 0000000000..d1bc86b370
--- /dev/null
+++ b/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/xlc/XlcGrammarExtensions.g
@@ -0,0 +1,82 @@
+-----------------------------------------------------------------------------------
+-- Copyright (c) 2009 IBM Corporation and others.
+-- All rights reserved. This program and the accompanying materials
+-- are made available under the terms of the Eclipse Public License v1.0
+-- which accompanies this distribution, and is available at
+-- http://www.eclipse.org/legal/epl-v10.html
+--
+-- Contributors:
+-- IBM Corporation - initial API and implementation
+-----------------------------------------------------------------------------------
+
+
+-- These are additional rules that allow for parsing of GNU extensions.
+-- This file is intended to be mixed-in with C99Parser.g or GPPParser.g
+
+
+$Terminals
+
+ vector
+ pixel
+ bool
+
+$End
+
+
+
+
+
+$Rules
+
+type_id
+ ::= vector_type
+ /. $Build consumeTypeId(false); $EndBuild ./
+ | vector_type abstract_declarator
+ /. $Build consumeTypeId(true); $EndBuild ./
+
+vector_declaration
+ ::= vector_type <openscope-ast> init_declarator_list ';'
+ /. $Build consumeDeclarationSimple(true); $EndBuild ./
+
+
+vector_type
+ ::= <openscope-ast> no_type_declaration_specifiers_opt 'vector' vector_type_specifier all_specifier_qualifier_list_opt
+ /. $Build consumeVectorTypeSpecifier(); $EndBuild ./
+
+
+vector_type_specifier
+ ::= vector_type_specifier_token
+ /. $Build consumeToken(); $EndBuild ./
+
+vector_type_specifier_token
+ ::= 'pixel'
+ | 'float'
+ | 'bool'
+ | 'signed'
+ | 'unsigned'
+ | 'char'
+ | 'short'
+ | 'int'
+ | 'long'
+
+
+
+all_specifier_qualifiers
+ ::= vector_type_specifier
+ | no_type_declaration_specifiers
+
+all_specifier_qualifier_list
+ ::= all_specifier_qualifiers
+ | all_specifier_qualifier_list all_specifier_qualifiers
+
+all_specifier_qualifier_list_opt
+ ::= all_specifier_qualifier_list
+ | $empty
+
+no_type_declaration_specifiers_opt
+ ::= no_type_declaration_specifiers
+ | $empty
+
+
+$End
+

Back to the top