blob: 739d9c9fc384d0e352297dbae4308b29dc3c164e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
-----------------------------------------------------------------------------------
-- Copyright (c) 2009, 2010 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
_Decimal32
_Decimal64
_Decimal128
__static_assert
$End
$Rules
simple_type_specifier_token
::= '_Decimal32'
| '_Decimal64'
| '_Decimal128'
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
static_assert_declaration
::= '__static_assert' '(' expression ',' literal ')' ';'
/. $Build consumeCPPASTStaticAssertDeclaration(); $EndBuild ./
$End
|