Анализ исходного кода
Указанный ниже пример позволяет выполнить разбор заданного отчёта на выражения/токены (эти же объекты используются в SCI):
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 |
PARAMETERS: p_prog TYPE trdir-name DEFAULT sy-repid. START-OF-SELECTION. DATA(o_si) = cl_ci_source_include=>create( p_name = p_prog ). DATA(o_scan) = NEW cl_ci_scan( p_include = o_si ). cl_demo_output=>write_data( o_si->lines ). cl_demo_output=>write_data( o_scan->tokens ). cl_demo_output=>write_data( o_scan->statements ). LOOP AT o_scan->statements ASSIGNING FIELD-SYMBOL(<s>). DATA(idx) = sy-tabix. LOOP AT o_scan->tokens ASSIGNING FIELD-SYMBOL(<t>) FROM <s>-from TO <s>-to. cl_demo_output=>write_data( value = <t>-str name = |Statement { idx }| ). ENDLOOP. cl_demo_output=>line( ). ENDLOOP. DATA(lv_html) = cl_demo_output=>get( ). cl_abap_browser=>show_html( EXPORTING title = 'Code' html_string = lv_html container = cl_gui_container=>default_screen ). WRITE: space. |