📄 ibrowser.c
字号:
/* highlighting end column */ ); BEGIN( INITIAL ); }} YY_BREAKcase 8:YY_RULE_SETUP#line 282 "ibrowser.l"{ /* walk over the indentation (if any) */ for ( p = yytext; isspace( *p ); sn_advance_column( 1 ), p++ ); /* remember where equality name starts */ savep = p; /* walk over the equality name */ for ( ; !isspace( *p ); sn_advance_column( 1 ), p++ ); *p = 0; /* NULL-terminate equality name */ setLower( savep ); sn_insert_symbol( SN_CONS_DEF /* symbol type */ , NULL /* class name */ , savep /* identifier */ , sn_current_file() /* file name */ , sn_line() /* start line number */ , sn_column() - strlen( savep ) /* start column number */ , sn_line() /* end line number */ , sn_column() /* end column number */ , 0 /* attributes */ , NULL /* return types */ , NULL /* argument types */ , NULL /* argument names */ , NULL /* comment */ , sn_line() /* highlighting start line */ , sn_column() - strlen( savep ) /* highlighting start column */ , sn_line() /* highlighting end line */ , sn_column() /* highlighting end column */ ); sn_advance_column( yytext + yyleng - p );} YY_BREAKcase 9:YY_RULE_SETUP#line 319 "ibrowser.l"{ /* walk over the indentation (if any) */ for ( p = yytext; isspace( *p ); sn_advance_column( 1 ), p++ ); /* remember where symbol name starts */ savep = p; /* walk over the symbol name */ for ( ; *p != ':'; sn_advance_column( 1 ), p++ ); *p = 0; /* NULL-terminate symbol name */ setLower( savep ); sn_insert_symbol( SN_GLOB_VAR_DEF /* symbol type */ , NULL /* class name */ , savep /* identifier */ , sn_current_file() /* file name */ , sn_line() /* start line number */ , sn_column() - strlen( savep ) /* start column number */ , sn_line() /* end line number */ , sn_column() /* end column number */ , 0 /* attributes */ , NULL /* return types */ , NULL /* argument types */ , NULL /* argument names */ , NULL /* comment */ , sn_line() /* highlighting start line */ , sn_column() - strlen( savep ) /* highlighting start column */ , sn_line() /* highlighting end line */ , sn_column() /* highlighting end column */ ); sn_advance_column( yytext + yyleng - p );} YY_BREAKcase 10:YY_RULE_SETUP#line 356 "ibrowser.l"{ /* walk over the indentation (if any) */ for ( p = yytext; isspace( *p ); sn_advance_column( 1 ), p++ ); /* remember where symbol name starts */ savep = p; /* walk over the symbol name */ for ( ; *p != ':'; sn_advance_column( 1 ), p++ ); *p = 0; /* NULL-terminate symbol name */ emit_func_defn(); setLower( savep ); strcpy( last_label.name, savep ); last_label.line = sn_line(); last_label.column = sn_column() - strlen( savep ); last_label.length = strlen( savep ); last_label.flag = 1; sn_advance_column( yytext + yyleng - p );} YY_BREAKcase 11:YY_RULE_SETUP#line 380 "ibrowser.l"{ /* walk over instruction mnemonic */ for ( p = yytext; !isspace( *p ); p++ ); /* walk over the whitespace between the opcode and the operand */ for ( ; isspace( *p ); p++ ); setLower( p ); sn_insert_xref( SN_REF_TO_CONSTANT /* referenced symbol type */ , SN_FUNC_DEF /* scope type */ , SN_REF_SCOPE_GLOBAL /* scope level */ , NULL /* class name */ , last_label.name /* calling function name */ , NULL /* argument types */ , NULL /* namespace of symbol */ , p /* referenced symbol */ , NULL /* referenced argument types */ , sn_current_file() /* file name */ , sn_line() /* line number */ , SN_REF_READ /* access type */ ); sn_advance_column( yyleng );} YY_BREAKcase 12:YY_RULE_SETUP#line 405 "ibrowser.l"{ /* walk over instruction mnemonic */ for ( p = yytext; !isspace( *p ); p++ ); /* walk over the whitespace between the opcode and the operand */ for ( ; isspace( *p ); p++ ); setLower( p ); sn_insert_xref( SN_REF_TO_GLOB_VAR /* referenced symbol type */ , SN_FUNC_DEF /* scope type */ , SN_REF_SCOPE_GLOBAL /* scope level */ , NULL /* class name */ , last_label.name /* calling function name */ , NULL /* argument types */ , NULL /* namespace of symbol */ , p /* referenced symbol */ , NULL /* referenced argument types */ , sn_current_file() /* file name */ , sn_line() /* line number */ , SN_REF_READ /* access type */ ); sn_advance_column( yyleng );} YY_BREAKcase 13:YY_RULE_SETUP#line 430 "ibrowser.l"{ /* walk over instruction mnemonic */ for ( p = yytext; !isspace( *p ); p++ ); /* walk over the whitespace between the opcode and the operand */ for ( ; isspace( *p ); p++ ); setLower( p ); sn_insert_xref( SN_REF_TO_GLOB_VAR /* referenced symbol type */ , SN_FUNC_DEF /* scope type */ , SN_REF_SCOPE_GLOBAL /* scope level */ , NULL /* class name */ , last_label.name /* calling function name */ , NULL /* argument types */ , NULL /* namespace of symbol */ , p /* referenced symbol */ , NULL /* referenced argument types */ , sn_current_file() /* file name */ , sn_line() /* line number */ , SN_REF_WRITE /* access type */ ); sn_advance_column( yyleng );} YY_BREAKcase 14:YY_RULE_SETUP#line 455 "ibrowser.l"{ /* walk over instruction mnemonic and register definition */ for ( p = yytext; *p != ','; p++ ); /* walk over the whitespace between the comma and the second operand */ for ( ; isspace( *p ); p++ ); setLower( p ); sn_insert_xref( SN_REF_TO_CONSTANT /* referenced symbol type */ , SN_FUNC_DEF /* scope type */ , SN_REF_SCOPE_GLOBAL /* scope level */ , NULL /* class name */ , last_label.name /* calling function name */ , NULL /* argument types */ , NULL /* namespace of symbol */ , p /* referenced symbol */ , NULL /* referenced argument types */ , sn_current_file() /* file name */ , sn_line() /* line number */ , SN_REF_READ /* access type */ ); sn_advance_column( yyleng );} YY_BREAKcase 15:YY_RULE_SETUP#line 480 "ibrowser.l"{ /* walk over instruction mnemonic and register definition */ for ( p = yytext; *p != ','; p++ ); /* walk over the whitespace between the comma and the second operand */ for ( ; isspace( *p ); p++ ); setLower( p ); sn_insert_xref( SN_REF_TO_CONSTANT /* referenced symbol type */ , SN_FUNC_DEF /* scope type */ , SN_REF_SCOPE_GLOBAL /* scope level */ , NULL /* class name */ , last_label.name /* calling function name */ , NULL /* argument types */ , NULL /* namespace of symbol */ , p /* referenced symbol */ , NULL /* referenced argument types */ , sn_current_file() /* file name */ , sn_line() /* line number */ , SN_REF_READ /* access type */ ); sn_advance_column( yyleng );} YY_BREAKcase 16:YY_RULE_SETUP#line 505 "ibrowser.l"{ /* walk over any spaces after the leading ';' */ for ( p = yytext, p++; isspace( *p ); p++ ); sn_insert_comment( NULL /* class name */ , last_label.name /* function name */ , sn_current_file() /* file name */ , p /* comment */ , sn_line() /* start line of comment */ , sn_column() /* start column of comment */ ); sn_advance_line(); sn_reset_column();} YY_BREAKcase 17:YY_RULE_SETUP#line 522 "ibrowser.l"{ sn_advance_column( yyleng ); /* eat string literals */} YY_BREAKcase 18:YY_RULE_SETUP#line 526 "ibrowser.l"{ sn_advance_column( yyleng ); /* eat intel8085 code text */} YY_BREAKcase 19:YY_RULE_SETUP#line 530 "ibrowser.l"{ sn_advance_line(); sn_reset_column();} YY_BREAKcase 20:YY_RULE_SETUP#line 535 "ibrowser.l"ECHO; YY_BREAKcase YY_STATE_EOF(INITIAL):case YY_STATE_EOF(MACRO): yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between yy_current_buffer and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yy_n_chars = yy_current_buffer->yy_n_chars; yy_current_buffer->yy_input_file = yyin; yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) { /* This was really a NUL. */ yy_state_type yy_next_state; yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state(); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = yytext_ptr + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yy_c_buf_p; goto yy_find_action; } } else switch ( yy_get_next_buffer() ) { case EOB_ACT_END_OF_FILE: { yy_did_buffer_switch_on_eof = 0; if ( yywrap() ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! yy_did_buffer_switch_on_eof ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state(); yy_cp = yy_c_buf_p; yy_bp = yytext_ptr + YY_MORE_ADJ; goto yy_match;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -