ROSE
0.9.6a
|
Go to the source code of this file.
Namespaces | |
AstFromString | |
Liao 4/13/2011. | |
Constant Groups | |
AstFromString | |
Liao 4/13/2011. | |
Functions | |
Character check , without side effect on the current position | |
utility functions for checking characters, without changing the current position of the input string being parsed. | |
bool | AstFromString::afs_is_digit () |
Check if the current character is a digit. The current position of the input string remains unchanged either way. More... | |
bool | AstFromString::afs_is_identifier_char () |
Check if the current character is a legal identifier character, including letters, digits, '_' and '$' (For fortran). No side effect on the current position. More... | |
bool | AstFromString::afs_is_letter () |
Check if the current character is a letter. No side effect on the current position of the input string. More... | |
bool | AstFromString::afs_is_lower_letter () |
Check if the current character is a lower case letter. More... | |
bool | AstFromString::afs_is_upper_letter () |
Check if the current character is a upper case letter. More... | |
Match with side effects (set c_parsed_node and advance the current position of character) if successful. Return false and have no side effects if the match fails. | |
utility functions for matching string, whitespace, identifiers, const etc. Successful match will advance the current position. entry point, declarations, types Follow the order of http://www.antlr.org/grammar/1153358328744/C.g | |
ROSE_DLL_API bool | AstFromString::afs_match_char (char c) |
match a char, advance one position if successful. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_substr (const char *substr, bool checkTrail=true) |
Match a sub string: a given sub c string from the input c string, again skip heading space/tabs if any. More... | |
ROSE_DLL_API bool | AstFromString::afs_skip_whitespace () |
Match and skip whitespace. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_identifier () |
Match identifier, move to the next character if successful. The identifier could be a name of a type, function, variable, or label. The resolved identifier (type , variable name, function reference expression, or label name) is stored into c_parsed_node. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_integer_const (int *result) |
Match an integer constant, store it into result. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_translation_unit () |
Match a translation unit. Not yet implemented. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_external_declaration () |
Match an external declaration. Not yet implemented. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_function_definition () |
Match a function definition. Not yet implemented. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_declaration () |
Match a declaration. Not yet implemented. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_declaration_specifiers () |
Match declaration specifiers. Not yet implemented. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_init_declarator_list () |
Match an init declarator list. Not yet implemented. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_init_declarator () |
Match init declarator. Not yet implemented. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_storage_class_specifier () |
Match a storage class specifier. Not yet implemented. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_type_specifier () |
Match a type specifier : 'void' | 'char' | 'short' | 'int' | 'long' | 'float' | 'double' | 'signed' | 'unsigned' | struct_or_union_specifier | enum_specifier | type_id. The recognized type is stored in c_parsed_node. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_specifier_qualifier_list (std::vector< SgNode * > &) |
Match a list of specifiers and qualifiers : : ( type_qualifier | type_specifier )+. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_type_qualifier () |
Match a type qualifier : 'const' | 'volatile'. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_type_name () |
Match a type name : specifier_qualifier_list abstract_declarator? More... | |
Expression | |
utility functions for parsing expressions and generate AST pieces for them. Successful match will advance the current position. The function names and grammars largely follow the conventions used in http://www.antlr.org/grammar/1153358328744/C.g. For example in the grammar shown, | means or, * means 0 or more repetition of the previous term , ? means 0 or 1 occurrence of the previous term. + means 1 or more occurrence. | |
ROSE_DLL_API bool | AstFromString::afs_match_argument_expression_list () |
Grammar: argument_expression_list : assignment_expression (',' assignment_expression)* one assignment_expression, followed by optionally arbitrary numbers of (',' assignment_expression), store SgExprListExp to c_parsed_node. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_additive_expression () |
Grammar: additive_expression : (multiplicative_expression) ('+' multiplicative_expression | '-' multiplicative_expression)*. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_multiplicative_expression () |
multiplicative_expression : (cast_expression) ('*' cast_expression | '/' cast_expression | '' cast_expression)* More... | |
ROSE_DLL_API bool | AstFromString::afs_match_cast_expression () |
cast_expression : '(' type_name ')' cast_expression | unary_expression More... | |
ROSE_DLL_API bool | AstFromString::afs_match_unary_expression () |
unary_expression : postfix_expression | INC_OP unary_expression | DEC_OP unary_expression | unary_operator cast_expression | SIZEOF unary_expression | SIZEOF '(' type_name ')' More... | |
ROSE_DLL_API bool | AstFromString::afs_match_postfix_expression () |
postfix_expression : primary_expression ( '[' expression ']' | '(' ')' | '(' argument_expression_list ')' | '.' IDENTIFIER | '->' IDENTIFIER | '++' | '–' )* More... | |
ROSE_DLL_API bool | AstFromString::afs_match_primary_expression () |
primary_expression : IDENTIFIER | constant | '(' expression ')' More... | |
ROSE_DLL_API bool | AstFromString::afs_match_constant () |
Only integer constant is supported for now. Full grammar is constant : HEX_LITERAL | OCTAL_LITERAL | DECIMAL_LITERAL | CHARACTER_LITERAL | STRING_LITERAL | FLOATING_POINT_LITERAL. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_expression () |
expression : assignment_expression (',' assignment_expression)*. Match one or more assignment_expression More... | |
ROSE_DLL_API bool | AstFromString::afs_match_constant_expression () |
constant_expression : conditional_expression More... | |
ROSE_DLL_API bool | AstFromString::afs_match_assignment_expression () |
assignment_expression : lvalue assignment_operator assignment_expression | conditional_expression More... | |
ROSE_DLL_API bool | AstFromString::afs_match_lvalue () |
lvalue: unary_expression More... | |
ROSE_DLL_API bool | AstFromString::afs_match_conditional_expression () |
conditional_expression : logical_or_expression ('?' expression ':' conditional_expression)? '?' means 0 or 1 occurrence More... | |
ROSE_DLL_API bool | AstFromString::afs_match_logical_or_expression () |
logical_or_expression : logical_and_expression ('||' logical_and_expression)* More... | |
ROSE_DLL_API bool | AstFromString::afs_match_logical_and_expression () |
logical_and_expression : inclusive_or_expression ('&&' inclusive_or_expression)* More... | |
ROSE_DLL_API bool | AstFromString::afs_match_inclusive_or_expression () |
inclusive_or_expression : exclusive_or_expression ('|' exclusive_or_expression)* More... | |
ROSE_DLL_API bool | AstFromString::afs_match_exclusive_or_expression () |
exclusive_or_expression : and_expression ('^' and_expression)* More... | |
ROSE_DLL_API bool | AstFromString::afs_match_and_expression () |
and_expression : equality_expression ('&' equality_expression)* More... | |
ROSE_DLL_API bool | AstFromString::afs_match_equality_expression () |
equality_expression : relational_expression (('=='|'!=') relational_expression)* More... | |
ROSE_DLL_API bool | AstFromString::afs_match_relational_expression () |
relational_expression : shift_expression (('<'|'>'|'<='|'>=') shift_expression)* More... | |
ROSE_DLL_API bool | AstFromString::afs_match_shift_expression () |
shift_expression : additive_expression (('<<'|'>>') additive_expression)* More... | |
Statement | |
utility functions to parse a few statements. Successful match will advance the current position. INCOMPLETE now, Don't use them yet! | |
ROSE_DLL_API bool | AstFromString::afs_match_statement () |
match any statement, not complete yet. Don't use it yet . : labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement More... | |
ROSE_DLL_API bool | AstFromString::afs_match_labeled_statement () |
Match labeled statement : IDENTIFIER ':' statement | 'case' constant_expression ':' statement | 'default' ':' statement. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_compound_statement () |
Not yet implemented. Match compound statement: '{' declaration* statement_list? '}'. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_expression_statement () |
Match expression statement: : ';' | expression ';'. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_selection_statement () |
Match selection statement: IF '(' expression ')' statement | IF '(' expression ')' statement ELSE statement | SWITCH '(' expression ')' statement. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_iteration_statement () |
Match an iteration statement: : 'while' '(' expression ')' statement | 'do' statement 'while' '(' expression ')' ';' | 'for' '(' expression_statement expression_statement expression? ')' statement. More... | |
ROSE_DLL_API bool | AstFromString::afs_match_jump_statement () |
Match a jump statement : 'goto' IDENTIFIER ';' | 'continue' ';' | 'break' ';' | 'return' ';' | 'return' expression ';'. More... | |
Namespace scope variables | |
#define | OFS_MAX_LEN 256 |
maximum length for a buffer for a variable, constant, or pragma construct name More... | |
ROSE_DLL_API const char * | AstFromString::c_char |
A namespace scope char* to avoid passing and returning a target c string for every and each function current characters being scanned, what is pointed is const, the pointer itself is not const. More... | |
ROSE_DLL_API SgNode * | AstFromString::c_sgnode |
current anchor SgNode associated with parsing. It will serve as a start point to find enclosing scopes for resolving identifiers/symbols More... | |
ROSE_DLL_API SgNode * | AstFromString::c_parsed_node |
Store the AST substree (expression, statement) generated from a helper function. More... | |
#define OFS_MAX_LEN 256 |
maximum length for a buffer for a variable, constant, or pragma construct name
Definition at line 27 of file AstFromString.h.