1
- import cpp
1
+ import cpp
2
2
3
3
/**
4
- * Namespace for containing emergent language features in C11.
4
+ * Namespace for containing emergent language features in C11.
5
5
*/
6
6
module C11 {
7
- abstract class EmergentLanguageFeature extends Element { }
8
-
9
- class AlignAsAttribute extends EmergentLanguageFeature , Attribute {
10
- AlignAsAttribute ( ) { getName ( ) = "_Alignas" }
11
- }
12
-
13
- class AtomicVariableSpecifier extends EmergentLanguageFeature , Variable {
14
- AtomicVariableSpecifier ( ) {
15
- getType ( ) .( DerivedType ) .getBaseType * ( ) .getASpecifier ( ) .getName ( ) = "atomic"
16
- }
17
- }
18
-
19
- class AtomicDeclaration extends EmergentLanguageFeature , Declaration {
20
- AtomicDeclaration ( ) { getASpecifier ( ) .getName ( ) = "atomic" }
21
- }
22
-
23
- class ThreadLocalDeclaration extends EmergentLanguageFeature , Declaration {
24
- ThreadLocalDeclaration ( ) { getASpecifier ( ) .getName ( ) = "is_thread_local" }
25
- }
26
-
27
- class EmergentHeader extends EmergentLanguageFeature , Include {
28
- EmergentHeader ( ) {
29
- getIncludedFile ( ) .getBaseName ( ) = [ "stdalign.h" , "stdatomic.h" , "stdnoreturn.h" , "threads.h" ]
30
- }
31
- }
32
-
33
- class LibExt1Macro extends EmergentLanguageFeature , Macro {
34
- LibExt1Macro ( ) {
35
- getName ( ) = "__STDC_WANT_LIB_EXT1__" and
36
- getBody ( ) = "1"
37
- }
7
+ abstract class EmergentLanguageFeature extends Element { }
8
+
9
+ class AlignAsAttribute extends EmergentLanguageFeature , Attribute {
10
+ AlignAsAttribute ( ) { getName ( ) = "_Alignas" }
11
+ }
12
+
13
+ class AtomicVariableSpecifier extends EmergentLanguageFeature , Variable {
14
+ AtomicVariableSpecifier ( ) {
15
+ getType ( ) .( DerivedType ) .getBaseType * ( ) .getASpecifier ( ) .getName ( ) = "atomic"
38
16
}
39
-
40
- class GenericMacro extends EmergentLanguageFeature , Macro {
41
- GenericMacro ( ) { getBody ( ) .indexOf ( "_Generic" ) = 0 }
17
+ }
18
+
19
+ class AtomicDeclaration extends EmergentLanguageFeature , Declaration {
20
+ AtomicDeclaration ( ) { getASpecifier ( ) .getName ( ) = "atomic" }
21
+ }
22
+
23
+ class ThreadLocalDeclaration extends EmergentLanguageFeature , Declaration {
24
+ ThreadLocalDeclaration ( ) { getASpecifier ( ) .getName ( ) = "is_thread_local" }
25
+ }
26
+
27
+ class EmergentHeader extends EmergentLanguageFeature , Include {
28
+ EmergentHeader ( ) {
29
+ getIncludedFile ( ) .getBaseName ( ) = [ "stdalign.h" , "stdatomic.h" , "stdnoreturn.h" , "threads.h" ]
42
30
}
43
-
44
- class NoReturnSpecificer extends EmergentLanguageFeature , Function {
45
- NoReturnSpecificer ( ) { getASpecifier ( ) .getName ( ) = "noreturn" }
31
+ }
32
+
33
+ class LibExt1Macro extends EmergentLanguageFeature , Macro {
34
+ LibExt1Macro ( ) {
35
+ getName ( ) = "__STDC_WANT_LIB_EXT1__" and
36
+ getBody ( ) = "1"
46
37
}
47
-
48
- class AlignOf extends EmergentLanguageFeature , AlignofTypeOperator { }
49
- }
38
+ }
39
+
40
+ class GenericMacro extends EmergentLanguageFeature , Macro {
41
+ GenericMacro ( ) { getBody ( ) .indexOf ( "_Generic" ) = 0 }
42
+ }
43
+
44
+ class NoReturnSpecificer extends EmergentLanguageFeature , Function {
45
+ NoReturnSpecificer ( ) { getASpecifier ( ) .getName ( ) = "noreturn" }
46
+ }
47
+
48
+ class AlignOf extends EmergentLanguageFeature , AlignofTypeOperator { }
49
+ }
0 commit comments