1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | /**************************************/ /* filename:bbi_prot.h 全関数のプロトタイプ*/ /**************************************/ // --------------bbi_pars.cpp構文解析 void init(); void convert_to_internalCode( char *fname); void convert(); void convert_block_set(); void convert_block(); void convert_rest(); void optionSet(); void varDec1(); void var_namechk( const Token& tk); void set_name(); void set_aryLen(); void fncDec1(); void backPatch( int line, int n); void setCode( int cd); int setCode( int cd, int nbr); void setCode_rest(); void setCode_End(); void setCode_EofLine(); void push_intercode(); bool is_localScope(); // ------------------bbi_tkn.cppトークン処理 void initChTyp(); void fileOpen( char *fname); void nextLine(); Token nextLine_tkn(); Token nextTkn(); bool is_ope2( char c1, char c2); TknKind get_kind( const string& s); Token chk_nextTkn( const Token& tk, int kind2); void set_token_p( char *p); string kind_to_s( int kd); string kind_to_s( const CodeSet& cd); int get_lineNo(); // ------------------bbi_tbl.cpp記号表処理 int enter(SymTbl& tb, SymKind kind); void set_startLtable(); bool is_localName( const string& name, SymKind kind); int searchName( const string& s, int mode); vector<SymTbl>::iterator tableP( const CodeSet& cd); // ------------------bbi_code.cppメモリ管理と構文チェックと実行 void syntaxChk(); void set_startPc( int n); void execute(); void statement(); void block(); double get_expression( int kind1=0, int kind2=0); void expression( int kind1, int kind2); void expression(); void term( int n); void factor(); int opOrder(TknKind kd); void binaryExpr(TknKind kd); void post_if_set( bool & flg); void funcCall_syntax( int funcNbr); void funcCall( int fncNbr); void fncExec( int fncNbr); void sysFncExec_syntax(TknKind kd); void sysFncExec(TknKind kd); int get_memAdrs( const CodeSet& cd); int get_topAdrs( const CodeSet& cd); int endline_of_If( int line); void chk_EofLine(); TknKind lockCode( int line); CodeSet chk_nextCode( const CodeSet& cd, int kind2); CodeSet firstCode( int line); CodeSet nextCode(); void chk_dtTyp( const CodeSet& cd); void set_dtTyp( const CodeSet& cd, char typ); int set_LITERAL( double d); int set_LITERAL( const string& s); // ------------------bbi_misc.cpp雑関数 string dbl_to_s( double d); string err_msg( const string& a, const string& b); void err_exit(Tobj a= "\1" , Tobj b= "\1" , Tobj c= "\1" , Tobj d= "\1" ); |

