diff options
author | Søren Sandmann <sandmann@redhat.com> | 2007-09-05 22:57:52 -0400 |
---|---|---|
committer | Søren Sandmann <sandmann@redhat.com> | 2007-09-05 22:57:52 -0400 |
commit | bc63448c5cf216a2b9a42fbefc377c0fb751c430 (patch) | |
tree | bb82811aa3ab146e312f2ca5feaf01c541801ba2 /ast.c | |
parent | 72a3726d206853d07bb677bcfe7087b4c14975a2 (diff) |
Initial support for switch statements
Diffstat (limited to 'ast.c')
-rw-r--r-- | ast.c | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -114,6 +114,7 @@ case_new (ast_case_type_t type, { ast_t *ast = ast_new (AST_CASE); + ast->case_.common.type = type; ast->case_.common.statement = statement; return (ast_case_t *)ast; @@ -629,3 +630,23 @@ ast_enclosing_do (ast_t *ast) return (ast_do_statement_t *)enclosing ( ast, AST_STATEMENT, AST_DO_STATEMENT); } + +ast_switch_statement_t * +ast_enclosing_switch (ast_t *ast) +{ + return (ast_switch_statement_t *)enclosing ( + ast, AST_STATEMENT, AST_SWITCH_STATEMENT); +} + +gboolean +ast_encloses (ast_t *outer, + ast_t *inner) +{ + if (!inner) + return FALSE; + + if (inner == outer) + return TRUE; + else + return ast_encloses (outer, inner->common.parent); +} |