You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			196 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			INI
		
	
			
		
		
	
	
			196 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			INI
		
	
#-----------------------------------------------------------------
 | 
						|
# pycparser: _c_ast.cfg
 | 
						|
#
 | 
						|
# Defines the AST Node classes used in pycparser.
 | 
						|
#
 | 
						|
# Each entry is a Node sub-class name, listing the attributes
 | 
						|
# and child nodes of the class:
 | 
						|
#   <name>*     - a child node
 | 
						|
#   <name>**    - a sequence of child nodes
 | 
						|
#   <name>      - an attribute
 | 
						|
#
 | 
						|
# Eli Bendersky [https://eli.thegreenplace.net/]
 | 
						|
# License: BSD
 | 
						|
#-----------------------------------------------------------------
 | 
						|
 | 
						|
# ArrayDecl is a nested declaration of an array with the given type.
 | 
						|
# dim: the dimension (for example, constant 42)
 | 
						|
# dim_quals: list of dimension qualifiers, to support C99's allowing 'const'
 | 
						|
#            and 'static' within the array dimension in function declarations.
 | 
						|
ArrayDecl: [type*, dim*, dim_quals]
 | 
						|
 | 
						|
ArrayRef: [name*, subscript*]
 | 
						|
 | 
						|
# op: =, +=, /= etc.
 | 
						|
#
 | 
						|
Assignment: [op, lvalue*, rvalue*]
 | 
						|
 | 
						|
Alignas: [alignment*]
 | 
						|
 | 
						|
BinaryOp: [op, left*, right*]
 | 
						|
 | 
						|
Break: []
 | 
						|
 | 
						|
Case: [expr*, stmts**]
 | 
						|
 | 
						|
Cast: [to_type*, expr*]
 | 
						|
 | 
						|
# Compound statement in C99 is a list of block items (declarations or
 | 
						|
# statements).
 | 
						|
#
 | 
						|
Compound: [block_items**]
 | 
						|
 | 
						|
# Compound literal (anonymous aggregate) for C99.
 | 
						|
# (type-name) {initializer_list}
 | 
						|
# type: the typename
 | 
						|
# init: InitList for the initializer list
 | 
						|
#
 | 
						|
CompoundLiteral: [type*, init*]
 | 
						|
 | 
						|
# type: int, char, float, string, etc.
 | 
						|
#
 | 
						|
Constant: [type, value]
 | 
						|
 | 
						|
Continue: []
 | 
						|
 | 
						|
# name: the variable being declared
 | 
						|
# quals: list of qualifiers (const, volatile)
 | 
						|
# funcspec: list function specifiers (i.e. inline in C99)
 | 
						|
# storage: list of storage specifiers (extern, register, etc.)
 | 
						|
# type: declaration type (probably nested with all the modifiers)
 | 
						|
# init: initialization value, or None
 | 
						|
# bitsize: bit field size, or None
 | 
						|
#
 | 
						|
Decl: [name, quals, align, storage, funcspec, type*, init*, bitsize*]
 | 
						|
 | 
						|
DeclList: [decls**]
 | 
						|
 | 
						|
Default: [stmts**]
 | 
						|
 | 
						|
DoWhile: [cond*, stmt*]
 | 
						|
 | 
						|
# Represents the ellipsis (...) parameter in a function
 | 
						|
# declaration
 | 
						|
#
 | 
						|
EllipsisParam: []
 | 
						|
 | 
						|
# An empty statement (a semicolon ';' on its own)
 | 
						|
#
 | 
						|
EmptyStatement: []
 | 
						|
 | 
						|
# Enumeration type specifier
 | 
						|
# name: an optional ID
 | 
						|
# values: an EnumeratorList
 | 
						|
#
 | 
						|
Enum: [name, values*]
 | 
						|
 | 
						|
# A name/value pair for enumeration values
 | 
						|
#
 | 
						|
Enumerator: [name, value*]
 | 
						|
 | 
						|
# A list of enumerators
 | 
						|
#
 | 
						|
EnumeratorList: [enumerators**]
 | 
						|
 | 
						|
# A list of expressions separated by the comma operator.
 | 
						|
#
 | 
						|
ExprList: [exprs**]
 | 
						|
 | 
						|
# This is the top of the AST, representing a single C file (a
 | 
						|
# translation unit in K&R jargon). It contains a list of
 | 
						|
# "external-declaration"s, which is either declarations (Decl),
 | 
						|
# Typedef or function definitions (FuncDef).
 | 
						|
#
 | 
						|
FileAST: [ext**]
 | 
						|
 | 
						|
# for (init; cond; next) stmt
 | 
						|
#
 | 
						|
For: [init*, cond*, next*, stmt*]
 | 
						|
 | 
						|
# name: Id
 | 
						|
# args: ExprList
 | 
						|
#
 | 
						|
FuncCall: [name*, args*]
 | 
						|
 | 
						|
# type <decl>(args)
 | 
						|
#
 | 
						|
FuncDecl: [args*, type*]
 | 
						|
 | 
						|
# Function definition: a declarator for the function name and
 | 
						|
# a body, which is a compound statement.
 | 
						|
# There's an optional list of parameter declarations for old
 | 
						|
# K&R-style definitions
 | 
						|
#
 | 
						|
FuncDef: [decl*, param_decls**, body*]
 | 
						|
 | 
						|
Goto: [name]
 | 
						|
 | 
						|
ID: [name]
 | 
						|
 | 
						|
# Holder for types that are a simple identifier (e.g. the built
 | 
						|
# ins void, char etc. and typedef-defined types)
 | 
						|
#
 | 
						|
IdentifierType: [names]
 | 
						|
 | 
						|
If: [cond*, iftrue*, iffalse*]
 | 
						|
 | 
						|
# An initialization list used for compound literals.
 | 
						|
#
 | 
						|
InitList: [exprs**]
 | 
						|
 | 
						|
Label: [name, stmt*]
 | 
						|
 | 
						|
# A named initializer for C99.
 | 
						|
# The name of a NamedInitializer is a sequence of Nodes, because
 | 
						|
# names can be hierarchical and contain constant expressions.
 | 
						|
#
 | 
						|
NamedInitializer: [name**, expr*]
 | 
						|
 | 
						|
# a list of comma separated function parameter declarations
 | 
						|
#
 | 
						|
ParamList: [params**]
 | 
						|
 | 
						|
PtrDecl: [quals, type*]
 | 
						|
 | 
						|
Return: [expr*]
 | 
						|
 | 
						|
StaticAssert: [cond*, message*]
 | 
						|
 | 
						|
# name: struct tag name
 | 
						|
# decls: declaration of members
 | 
						|
#
 | 
						|
Struct: [name, decls**]
 | 
						|
 | 
						|
# type: . or ->
 | 
						|
# name.field or name->field
 | 
						|
#
 | 
						|
StructRef: [name*, type, field*]
 | 
						|
 | 
						|
Switch: [cond*, stmt*]
 | 
						|
 | 
						|
# cond ? iftrue : iffalse
 | 
						|
#
 | 
						|
TernaryOp: [cond*, iftrue*, iffalse*]
 | 
						|
 | 
						|
# A base type declaration
 | 
						|
#
 | 
						|
TypeDecl: [declname, quals, align, type*]
 | 
						|
 | 
						|
# A typedef declaration.
 | 
						|
# Very similar to Decl, but without some attributes
 | 
						|
#
 | 
						|
Typedef: [name, quals, storage, type*]
 | 
						|
 | 
						|
Typename: [name, quals, align, type*]
 | 
						|
 | 
						|
UnaryOp: [op, expr*]
 | 
						|
 | 
						|
# name: union tag name
 | 
						|
# decls: declaration of members
 | 
						|
#
 | 
						|
Union: [name, decls**]
 | 
						|
 | 
						|
While: [cond*, stmt*]
 | 
						|
 | 
						|
Pragma: [string]
 |