📄 cobol.pars
字号:
{ => { Section = cSCRN_SCT }; } screen_description_entry_l . = .> .report_description_entry_l = < = report_description_entry_l report_description_entry report_group_description_entry_l . = report_description_entry_l copy_or_replace . = report_description_entry_l execute period_o . = .> .report_group_description_entry_l = < = report_group_description_entry_l report_group_description_entry . = .> .file_description_entry = FD name copy_o file_clause_l '.' { => { (void) Declare (\FD, name:Scan, oFILE, PrevEPos); }; } .sort_merge_file_description_entry = SD name copy_o sort_merge_clause_l '.' { => { (void) Declare (\SD, name:Scan, oFILE, PrevEPos); }; } .file_clause_l = < = . = file_clause_l file_clause .> .file_clause = < = Is EXTERNAL . = Is 'GLOBAL' . = BLOCK Contains integer RECORDS . = BLOCK Contains integer Characters . = BLOCK Contains integer TO integer RECORDS . = BLOCK Contains integer TO integer Characters . = RECORD Contains integer Characters . = RECORD Contains integer TO integer Characters . = RECORD Is VARYING In Size from_o to_o Characters depending_o . = LABEL RECORD AreIs STANDARD . = LABEL RECORD AreIs OMITTED . = LABEL RECORD AreIs name_l . = LABEL RECORDS AreIs STANDARD . = LABEL RECORDS AreIs OMITTED . = LABEL RECORDS AreIs name_l . = VALUE OF value_l . = VALUE OF 'FILE-ID' Is name_or_literal . = DATA RECORD AreIs name_l_f . = DATA RECORDS AreIs name_l_f . = LINAGE Is linage LINES footing LINES AT top bottom_o . = LINAGE Is linage LINES footing LINES top bottom_o . = LINAGE Is linage LINES footing AT top bottom_o . = LINAGE Is linage LINES footing top bottom_o . = LINAGE Is linage LINES footing LINES AT bottom . = LINAGE Is linage LINES footing LINES bottom . = LINAGE Is linage LINES footing AT bottom . = LINAGE Is linage LINES footing bottom . = LINAGE Is linage LINES footing . = LINAGE Is linage LINES LINES AT top bottom_o . = LINAGE Is linage LINES LINES top bottom_o . = LINAGE Is linage LINES AT top bottom_o . = LINAGE Is linage LINES top bottom_o . = LINAGE Is linage LINES LINES AT bottom . = LINAGE Is linage LINES LINES bottom . = LINAGE Is linage LINES AT bottom . = LINAGE Is linage LINES bottom . = LINAGE Is linage LINES . = LINAGE Is linage footing LINES AT top bottom_o . = LINAGE Is linage footing LINES top bottom_o . = LINAGE Is linage footing AT top bottom_o . = LINAGE Is linage footing top bottom_o . = LINAGE Is linage footing LINES AT bottom . = LINAGE Is linage footing LINES bottom . = LINAGE Is linage footing AT bottom . = LINAGE Is linage footing bottom . = LINAGE Is linage footing . = LINAGE Is linage AT top bottom_o . = LINAGE Is linage top bottom_o . = LINAGE Is linage AT bottom . = LINAGE Is linage bottom . = LINAGE Is linage . = 'CODE-SET' Is alphabet_name . = 'CODE-SET' Is alphabet_name 'FOR' identifier_l . = REPORT AreIs name_l . = REPORTS AreIs name_l . = RECORDING Mode Is name . /* name: F V U S */ = RECORDING Mode Is FIXED . = RECORDING Mode Is VARIABLE .> .sort_merge_clause_l = < = . = sort_merge_clause_l sort_merge_clause .> .sort_merge_clause = < = BLOCK Contains integer RECORDS . = BLOCK Contains integer Characters . = BLOCK Contains integer TO integer RECORDS . = BLOCK Contains integer TO integer Characters . = RECORD Contains integer Characters . = RECORD Contains integer TO integer Characters . = RECORD Is VARYING In Size from_o to_o Characters depending_o . = LABEL RECORD AreIs STANDARD . = LABEL RECORD AreIs OMITTED . = LABEL RECORD AreIs name_l . = LABEL RECORDS AreIs STANDARD . = LABEL RECORDS AreIs OMITTED . = LABEL RECORDS AreIs name_l . = DATA RECORD AreIs name_l_f . = DATA RECORDS AreIs name_l_f . = VALUE OF 'FILE-ID' Is name_or_literal .> .value_l = < = value_e . = value_l value_e .> .value_e = < = name Is qualification { => { (void) UseName (name:Scan); }; } . = name Is literal { => { (void) UseName (name:Scan); }; } .> .from_o = < = From integer . = . > .to_o = < = TO integer . = . > .depending_o = < = DEPENDING On qualification . = . > .bottom_o = < = Lines At bottom . = . > .footing = With FOOTING At linage .top = TOP linage .bottom = BOTTOM linage .linage = < = qualification . = integer .> .data_description_entry_l = < = . = data_description_entry_l data_description_entry . = data_description_entry_l copy_or_replace . = data_description_entry_l execute period_o .> .data_description_entry = < Format_0 = < = level_number name_or_Filler redefines_o copy '.' l2: level_number n2: name_or_Filler r2: redefines_o data_clause_l '.' { => { (void) Declare (level_number:Value, name_or_Filler:Scan, oDATA, PrevEPos); }; } . = '77' name_or_Filler redefines_o copy '.' l2: '77' n2: name_or_Filler r2: redefines_o data_clause_l '.' { => { (void) Declare (77, name_or_Filler:Scan, oDATA, PrevEPos); }; } . > . Format_1 = < = level_number name_or_Filler redefines_o data_clause_l '.' { => { (void) Declare (level_number:Value, name_or_Filler:Scan, oDATA, PrevEPos); }; } . = '77' name_or_Filler redefines_o data_clause_l '.' { => { (void) Declare (77, name_or_Filler:Scan, oDATA, PrevEPos); }; } . > . Format_2 = < = '66' name RENAMES renames_tail { => { (void) Declare (66, name:Scan, oDATA, PrevEPos); }; } . = '66' name in_of n2: name RENAMES renames_tail { => { (void) Declare (66, name:Scan, oDATA, PrevEPos); }; } . > . Format_3 = < = '88' condition_name: name VALUE AreIs condition_l false_o '.' { => { (void) Declare (88, condition_name:Scan, oDATA, PrevEPos); }; } . = '88' condition_name: name VALUES AreIs condition_l false_o '.' { => { (void) Declare (88, condition_name:Scan, oDATA, PrevEPos); }; } . > . Format_4 = < = '78' name VALUE Is const_expression '.' { => { (void) Declare (78, name:Scan, oDATA, PrevEPos); }; } . > .> .period_o = < = '.' . = .> .renames_tail = < = qualification '.' . = qualification THROUGH qualification '.' .> .redefines_o = < = REDEFINES name { => { (void) UseName (name:Scan); }; } . = .> .name_or_Filler = < = name { Scan := name:Scan; } . = Filler { Scan := { Scan.name.Ident = NoIdent; Scan.Position = NoPosition; }; } .> .data_clause_l = < = . = data_clause_l data_clause .> .data_clause = < = Is EXTERNAL . = Is 'GLOBAL' . = PICTURE Is string . = USAGE Is usage . = usage . = SIGN Is sign_1 . = sign_1 . = OCCURS integer TO integer Times a_de_scending_l indexed_o . = OCCURS integer Times a_de_scending_l indexed_o . = OCCURS integer TO integer Times DEPENDING On qualification_f a_de_scending_l indexed_o . = OCCURS integer Times DEPENDING On qualification_f a_de_scending_l indexed_o . = SYNCHRONIZED . = SYNCHRONIZED 'LEFT' . = SYNCHRONIZED 'RIGHT' . = JUSTIFIED Right . = BLANK When ZERO . = BLANK When ZEROS . = VALUE Is name_or_literal . = VALUE Is NULL . = VALUE Is NULLS .> .usage = < = BINARY . = COMPUTATIONAL . = DISPLAY . = INDEX . = 'PACKED-DECIMAL' . = 'COMPUTATIONAL-0' . = 'COMPUTATIONAL-1' . = 'COMPUTATIONAL-2' . = 'COMPUTATIONAL-3' . = 'COMPUTATIONAL-4' . = 'COMPUTATIONAL-5' . = 'COMPUTATIONAL-6' . = 'COMPUTATIONAL-X' . = POINTER . = 'DISPLAY-1' . = 'PROCEDURE-POINTER' .> .sign_1 = < = LEADING separate_o . = TRAILING separate_o .> .separate_o = < = SEPARATE Character . = .> .a_de_scending_l = < = . = a_de_scending_l ASCENDING Key Is qualification_l_f . = a_de_scending_l DESCENDING Key Is qualification_l_f .> .indexed_o = < = INDEXED By indexed_l . = .> .indexed_l = < = name { => { (void) Declare (IB, name:Scan, oDATA, PrevEPos); }; } . = indexed_l name { => { (void) Declare (IB, name:Scan, oDATA, PrevEPos); }; } .> .condition_l = < = dd_condition_e . = condition_l dd_condition_e .> .dd_condition_e = < = name_or_literal . = name_or_literal THROUGH name_or_literal .> .false_o = < = When Set To FALSE literal . = .> .const_expression = < = const_primary . = const_primary operator const_primary .> .const_primary = < = literal . = NEXT . = 'START' Of name_ . = LENGTH Of name_ .> .operator = < = '+' . = '-' . = '*' . = '/' . = AND . = OR .> .communication_description_entry = < = CD name copy_o For Initial 'INPUT' cd_input_o '.' { => (void) Declare (\CD, name:Scan, oDATA, PrevEPos); } . = CD name copy_o For 'OUTPUT' cd_output_l '.' { => (void) Declare (\CD, name:Scan, oDATA, PrevEPos); } . = CD name copy_o For Initial 'I-O' cd_i_o_o '.' { => (void) Declare (\CD, name:Scan, oDATA, PrevEPos); } .> .cd_input_o = < = cd_input_l . = name_or_filler name_or_filler name_or_filler name_or_filler name_or_filler name_or_filler name_or_filler name_or_filler name_or_filler name_or_filler name_or_filler .> .cd_input_l = < = . = cd_input_l cd_input_e .> .cd_input_e = < = Symbolic QUEUE Is name_ . = Symbolic 'SUB-QUEUE-1' Is name_ . = Symbolic 'SUB-QUEUE-2' Is name_ . = Symbolic 'SUB-QUEUE-3' Is name_ . = MESSAGE DATE Is name_ . = MESSAGE TIME Is name_ . = Symbolic SOURCE Is name_ . = TEXT LENGTH Is name_ . = 'END' KEY Is name_ . = STATUS KEY Is name_ . = Message COUNT Is name_ .> .cd_output_l = < = . = cd_output_l cd_output_e .> .cd_output_e = < = DESTINATION COUNT Is name_ . = TEXT LENGTH Is name_ . = STATUS KEY Is name_ . = DESTINATION TABLE OCCURS integer Times indexed_o . = ERROR KEY Is name_ . = DESTINATION Is name_ . = SYMBOLIC DESTINATION Is name_ .> .cd_i_o_o = < = cd_i_o_l . = name_or_filler name_or_filler name_or_filler name_or_filler name_or_filler name_or_filler .> .cd_i_o_l = < = . = cd_i_o_l cd_i_o_e .> .cd_i_o_e = < = MESSAGE DATE Is name_ . = MESSAGE TIME Is name_ . = Symbolic TERMINAL Is name_ . = TEXT LENGTH Is name_ . = 'END' KEY Is name_ . = STATUS KEY Is name_ .> .name_or_filler = < = name_ . = FILLER .> .report_description_entry = RD name report_clause_l '.' { => { (void) Declare (\RD, name:Scan, oDATA, PrevEPos); }; } .report_clause_l = < = . = report_clause_l report_clause .> .report_clause = < = Is 'GLOBAL' . = With CODE non_numeric_literal . = With CODE name_ . = CONTROL AreIs qualification_l . = CONTROLS AreIs qualification_l . = CONTROL AreIs FINAL . = CONTROLS AreIs FINAL . = CONTROL AreIs FINAL qualification_l . = CONTROLS AreIs FINAL qualification_l . = PAGE limit_o integer line_o page_l . = copy '.' .> .limit_o = < = LIMIT AreIs . = LIMITS AreIs . = IS . = Are .> .line_o = < = LINE . = Lines .> .page_l = < = . = page_l page_e .> .page_e = < = HEADING integer . = FIRST DETAIL integer . = LAST DETAIL integer . = FOOTING integer .> .report_group_description_entry = < = level_number report_group_clause_l '.' . = level_number name report_group_clause_l '.' { => { (void) Declare (level_number:Value, name:Scan, oDATA, PrevEPos); }; } .> .report_group_clause_l = < = . = report_group_clause_l report_group_clause .> .report_group_clause = < = LINE Number Is integer ? { GetLookahead (2) == YYCODE (GROUP) } . = LINE Number Is integer NEXT PAGE . = LINE Number Is integer ON NEXT PAGE . = LINE Number Is PLUS integer . = LINE Number Is NEXT PAGE . = NEXT GROUP Is integer . = NEXT GROUP Is PLUS integer . = NEXT GROUP Is NEXT PAGE . = TYPE Is type . = DISPLAY . = USAGE Is DISPLAY . = 'DISPLAY-1' . = USAGE Is 'DISPLAY-1' . = PICTURE Is string . = SIGN Is sign_2 . = sign_2 . = JUSTIFIED Right . = BLANK When ZERO . = BLANK When ZEROS . = COLUMN Number Is integer . = SOURCE Is identifier . = VALUE Is name_or_literal . /* repetition of SUM clause is done by nonterminal report_group_clause_l */ = SUM identifier_l reset_o . = SUM identifier_l UPON qualification_l reset_o . = GROUP Indicate .> .type = < = REPORT HEADING . = RH . = PAGE HEADING . = PH . = CONTROL HEADING name_or_final . = CH name_or_final . = DETAIL . = CONTROL FOOTING name_or_final . = CF name_or_final . = PAGE FOOTING . = PF . = REPORT FOOTING . = RF .> .name_or_final = < = qualification . = FINAL .> .sign_2 = < = LEADING SEPARATE Character . = TRAILING SEPARATE Character .> .reset_o = < = RESET On name_or_final . = .> .screen_description_entry_l = < = . = screen_description_entry_l screen_description_entry .
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -