Changeset b87a5ed for translator/Parser/Parser.cc
- Timestamp:
- May 16, 2015, 3:36:19 PM (9 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
- Children:
- a32b204
- Parents:
- b8508a2
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
translator/Parser/Parser.cc
rb8508a2 rb87a5ed 1 /* 2 * This file is part of the Cforall project 3 * 4 * $Id: Parser.cc,v 1.6 2002/11/15 20:07:18 rcbilson Exp $ 5 * 6 */ 1 // 2 // Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo 3 // 4 // The contents of this file are covered under the licence agreement in the 5 // file "LICENCE" distributed with Cforall. 6 // 7 // Parser.cc -- 8 // 9 // Author : Rodolfo G. Esteves 10 // Created On : Sat May 16 14:54:28 2015 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat May 16 14:55:59 2015 13 // Update Count : 2 14 // 7 15 8 16 #include "Parser.h" … … 11 19 #include "cfa.tab.h" 12 20 13 / * global variables in cfa.y */21 // global variables in cfa.y 14 22 extern int yyparse(void); 15 16 23 extern int yydebug; 17 24 extern LinkageSpec::Type linkage; 18 19 25 extern TypedefTable typedefTable; 20 26 extern DeclarationNode *theTree; 21 /* end of globals */22 27 23 28 Parser *Parser::theParser = 0; … … 25 30 Parser::Parser(): parseTree( 0 ), parseStatus( 1 ) {} 26 31 27 Parser::~Parser() 28 { 29 delete parseTree; 32 Parser::~Parser() { 33 delete parseTree; 30 34 } 31 35 32 /* static class method */ 33 Parser & 34 Parser::get_parser() 35 { 36 if( theParser == 0 ) { 37 theParser = new Parser; 38 } 39 return *theParser; 36 Parser &Parser::get_parser() { 37 if ( theParser == 0 ) { 38 theParser = new Parser; 39 } // if 40 return *theParser; 40 41 } 41 42 42 void 43 Parser::parse( FILE *input ) 44 { 45 extern FILE *yyin; 46 yyin = input; 47 extern int yylineno; 48 yylineno = 1; 49 typedefTable.enterScope(); 50 parseStatus = yyparse(); 51 parseTree = theTree; 43 void Parser::parse( FILE *input ) { 44 extern FILE *yyin; 45 yyin = input; 46 extern int yylineno; 47 yylineno = 1; 48 typedefTable.enterScope(); 49 parseStatus = yyparse(); 50 parseTree = theTree; 52 51 } 53 52 54 void 55 Parser::set_debug( bool debug ) 56 { 57 yydebug = debug; 53 void Parser::set_debug( bool debug ) { 54 yydebug = debug; 58 55 } 59 56 60 void 61 Parser::set_linkage( LinkageSpec::Type linkage ) 62 { 63 ::linkage = linkage; 57 void Parser::set_linkage( LinkageSpec::Type linkage ) { 58 ::linkage = linkage; 64 59 } 65 60 66 67 void 68 Parser::freeTree() 69 { 70 delete parseTree; 71 parseTree = 0; 61 void Parser::freeTree() { 62 delete parseTree; 63 parseTree = 0; 72 64 } 73 65 66 // Local Variables: // 67 // tab-width: 4 // 68 // mode: c++ // 69 // compile-command: "make install" // 70 // End: //
Note: See TracChangeset
for help on using the changeset viewer.