From a5ec6be8a97fdaa6725e96f11717a8125b81b6a8 Mon Sep 17 00:00:00 2001 From: Simon Sobisch Date: Thu, 14 Dec 2017 09:20:46 +0100 Subject: [PATCH] Enhance COBOL language support - function list & auto-completion COBOL support in function list - new entries in functionList.xml (note: defaults to fixed-form reference format, manual switch to free-form reference-format possible in association for langID 50) COBOL support in auto-completion - new file APIs/cobol.xml COBOL syntax highlighter - recreated list note: list of statements, functions and reserved words token from GnuCOBOL 3.0 (COBOL85,2002,2014 + extensions from IBM/MF/RM/ACUCOBOL), please report back if any words are missing Close #4004 --- PowerEditor/installer/APIs/cobol.xml | 1246 ++++++++++++++++++++++++++ PowerEditor/src/functionList.xml | 55 +- PowerEditor/src/langs.model.xml | 11 +- 3 files changed, 1307 insertions(+), 5 deletions(-) create mode 100644 PowerEditor/installer/APIs/cobol.xml diff --git a/PowerEditor/installer/APIs/cobol.xml b/PowerEditor/installer/APIs/cobol.xml new file mode 100644 index 00000000..735cf92b --- /dev/null +++ b/PowerEditor/installer/APIs/cobol.xml @@ -0,0 +1,1246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PowerEditor/src/functionList.xml b/PowerEditor/src/functionList.xml index abda83a0..17cee11f 100644 --- a/PowerEditor/src/functionList.xml +++ b/PowerEditor/src/functionList.xml @@ -86,9 +86,13 @@ + + - @@ -1382,6 +1386,55 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/PowerEditor/src/langs.model.xml b/PowerEditor/src/langs.model.xml index 7d929883..bbace26e 100644 --- a/PowerEditor/src/langs.model.xml +++ b/PowerEditor/src/langs.model.xml @@ -76,10 +76,13 @@ ABSOLUTE ABSTRACT ADDITIONAL_MAKE_CLEAN_FILES ALL AND APPEND ARGS ASCII BEFORE CACHE CACHE_VARIABLES CLEAR COMMAND COMMANDS COMMAND_NAME COMMENT COMPARE COMPILE_FLAGS COPYONLY DEFINED DEFINE_SYMBOL DEPENDS DOC EQUAL ESCAPE_QUOTES EXCLUDE EXCLUDE_FROM_ALL EXISTS EXPORT_MACRO EXT EXTRA_INCLUDE FATAL_ERROR FILE FILES FORCE FUNCTION GENERATED GLOB GLOB_RECURSE GREATER GROUP_SIZE HEADER_FILE_ONLY HEADER_LOCATION IMMEDIATE INCLUDES INCLUDE_DIRECTORIES INCLUDE_INTERNALS INCLUDE_REGULAR_EXPRESSION LESS LINK_DIRECTORIES LINK_FLAGS LOCATION MACOSX_BUNDLE MACROS MAIN_DEPENDENCY MAKE_DIRECTORY MATCH MATCHALL MATCHES MODULE NAME NAME_WE NOT NOTEQUAL NO_SYSTEM_PATH OBJECT_DEPENDS OPTIONAL OR OUTPUT OUTPUT_VARIABLE PATH PATHS POST_BUILD POST_INSTALL_SCRIPT PREFIX PREORDER PRE_BUILD PRE_INSTALL_SCRIPT PRE_LINK PROGRAM PROGRAM_ARGS PROPERTIES QUIET RANGE READ REGEX REGULAR_EXPRESSION REPLACE REQUIRED RETURN_VALUE RUNTIME_DIRECTORY SEND_ERROR SHARED SOURCES STATIC STATUS STREQUAL STRGREATER STRLESS SUFFIX TARGET TOLOWER TOUPPER VAR VARIABLES VERSION WIN32 WRAP_EXCLUDE WRITE APPLE MINGW MSYS CYGWIN BORLAND WATCOM MSVC MSVC_IDE MSVC60 MSVC70 MSVC71 MSVC80 CMAKE_COMPILER_2005 OFF ON - - configuration data declaratives division environment environment-division file file-control function i-o i-o-control identification input input-output linkage local-storage output procedure program program-id section special-names working-storage - accept add alter apply assign call chain close compute continue control convert count delete display divide draw drop eject else enable end-accept end-add end-call end-chain end-compute end-delete end-display end-divide end-evaluate end-if end-invoke end-multiply end-perform end-read end-receive end-return end-rewrite end-search end-start end-string end-subtract end-unstring end-write erase evaluate examine exec execute exit go goback generate if ignore initialize initiate insert inspect invoke leave merge move multiply open otherwise perform print read receive release reload replace report reread rerun reserve reset return rewind rewrite rollback run search seek select send set sort start stop store string subtract sum suppress terminate then transform unlock unstring update use wait when wrap write - access acquire actual address advancing after all allowing alphabet alphabetic alphabetic-lower alphabetic-upper alphanumeric alphanumeric-edited also alternate and any are area areas as ascending at attribute author auto auto-hyphen-skip auto-skip automatic autoterminate background-color background-colour backward basis beep before beginning bell binary blank blink blinking block bold bottom box boxed by c01 c02 c03 c04 c05 c06 c07 c08 c09 c10 c11 c12 cancel cbl cd centered cf ch chaining changed character characters chart class clock-units cobol code code-set col collating color colour column com-reg comma command-line commit commitment common communication comp comp-0 comp-1 comp-2 comp-3 comp-4 comp-5 comp-6 comp-x compression computational computational-1 computational-2 computational-3 computational-4 computational-5 computational-6 computational-x console contains content control-area controls conversion converting core-index corr corresponding crt crt-under csp currency current-date cursor cycle cyl-index cyl-overflow date date-compiled date-written day day-of-week dbcs de debug debug-contents debug-item debug-line debug-name debug-sub-1 debug-sub-2 debug-sub-3 debugging decimal-point default delimited delimiter depending descending destination detail disable disk disp display-1 display-st down duplicates dynamic echo egcs egi emi empty-check encryption end end-of-page ending enter entry eol eop eos equal equals error escape esi every exceeds exception excess-3 exclusive exhibit extend extended-search external externally-described-key factory false fd fh--fcd fh--keydef file-id file-limit file-limits file-prefix filler final first fixed footing for foreground-color foreground-colour format from full giving global greater grid group heading high high-value high-values highlight id in index indexed indic indicate indicator indicators inheriting initial installation into invalid invoked is japanese just justified kanji kept key keyboard label last leading left left-justify leftline length length-check less limit limits lin linage linage-counter line line-counter lines lock lock-holding locking low low-value low-values lower lowlight manual mass-update master-index memory message method mode modified modules more-labels multiple name named national national-edited native nchar negative next no no-echo nominal not note nstd-reels null nulls number numeric numeric-edited numeric-fill o-fill object object-computer object-storage occurs of off omitted on oostackptr optional or order organization other others overflow overline packed-decimal padding page page-counter paragraph password pf ph pic picture plus pointer pop-up pos position positioning positive previous print-control print-switch printer printer-1 printing prior private procedure-pointer procedures proceed process processing prompt protected public purge queue quote quotes random range rd readers ready record record-overflow recording records redefines reel reference references relative remainder remarks removal renames reorg-criteria repeated replacing reporting reports required resident return-code returning reverse reverse-video reversed rf rh right right-justify rolling rounded s01 s02 s03 s04 s05 same screen scroll sd secure security segment segment-limit selective self selfclass sentence separate sequence sequential service setshadow shift-in shift-out sign size skip1 skip2 skip3 sort-control sort-core-size sort-file-size sort-merge sort-message sort-mode-size sort-option sort-return source source-computer space spaces space-fill standard standard-1 standard-2 starting status sub-queue-1 sub-queue-2 sub-queue-3 subfile super symbolic sync synchronized sysin sysipt syslst sysout syspch syspunch system-info tab tallying tape terminal terminal-info test text than through thru time time-of-day time-out timeout times title to top totaled totaling trace track-area track-limit tracks trailing trailing-sign transaction true type typedef underline underlined unequal unit until up updaters upon upper upsi-0 upsi-1 upsi-2 upsi-3 upsi-4 upsi-5 upsi-6 upsi-7 usage user using value values variable varying when-compiled window with words write-only write-verify writerszero zero zero-fill zeros zeroes + + + configuration data declaratives division environment file file-control function function-id i-o i-o-control identification input input-output linkage local-storage output procedure program program-id screen section special-names working-storage exec end-exec + + accept add allocate alter call cancel close commit compute continue delete destroy disable display divide enable entry evaluate also when exit free generate go to goback if else initialize initiate inquire invoke inspect merge modify move multiply next sentence open perform purge raise read ready receive release reset resume return rewrite rollback search send set sort start stop string subtract suppress terminate transform unlock unstring use validate write end-accept end-add end-call end-compute end-delete end-display end-divide end-evaluate end-if end-multiply end-of-page end-perform end-read end-receive end-return end-rewrite end-search end-start end-string end-subtract end-unstring end-write copy replace abs acos annuity asin atan boolean-of-integer byte-length char char-national combined-datetime concatenate cos currency-symbol current-date date-of-integer date-to-yyyymmdd day-of-integer day-to-yyyyddd display-of e exception-file exception-file-n exception-location exception-location-n exception-statement exception-status exp exp10 factorial formatted-current-date formatted-date formatted-datetime formatted-time fraction-part highest-algebraic integer integer-of-boolean integer-of-date integer-of-day integer-of-formatted-date integer-part length length-an locale-compare locale-date locale-time locale-time-from-seconds log log10 lower-case lowest-algebraic max mean median midrange min mod module-caller-id module-date module-formatted-date module-id module-path module-source module-time monetary-decimal-point monetary-thousands-separator national-of numeric-decimal-point numeric-thousands-separator numval numval-c numval-f ord ord-max ord-min pi present-value random range rem reverse seconds-from-formatted-time seconds-past-midnight sign sin sqrt standard-compare standard-deviation stored-char-length substitute substitute-case sum tan test-date-yyyymmdd test-day-yyyyddd test-formatted-datetime test-numval test-numval-c test-numval-f trim upper-case variance when-compiled year-to-yyyy + + high-value high-values low-value low-values space spaces quote quotes zero zeroes zeros author date-compiled date-modified date-written installation remarks security cob-crt-status debug-item debug-line debug-name debug-sub-1 debug-sub-2 debug-sub-3 debug-contents number-of-call-parameters return-code return-code-unsigned sort-return tally dialect-all jnienvptr json-code linage-counter shift-in shift-out sort-control sort-core-size sort-file-size sort-message sort-mode-size xml-code xml-event xml-information xml-namespace xml-namespace-prefix xml-nnamespace xml-nnamespace-prefix xml-ntext xml-text sysin sysipt stdin sysout syslist syslst stdout print printer printer-1 syserr stderr console c01 c02 c03 c04 c05 c06 c07 c08 c09 c10 c11 c12 csp formfeed call-convention switch-0 switch-1 switch-2 switch-3 switch-4 switch-5 switch-6 switch-7 switch-8 switch-9 switch-10 switch-11 switch-12 switch-13 switch-14 switch-15 switch-16 switch-17 switch-18 switch-19 switch-20 switch-21 switch-22 switch-23 switch-24 switch-25 switch-26 switch-27 switch-28 switch-29 switch-30 switch-31 switch-32 switch-33 switch-34 switch-35 switch-36 upsi-0 upsi-1 upsi-2 upsi-3 upsi-4 upsi-5 upsi-6 upsi-7 access active-class address advancing after aligned all alphabet alphabetic alphabetic-lower alphabetic-upper alphanumeric alphanumeric-edited alternate and any anycase are area areas as ascending assign at automatic b-and b-not b-or b-xor based before binary binary-char binary-double binary-long binary-sequential binary-short bit blank block boolean bottom by cd cf ch character characters class class-id clock-units code-set col collating cols column columns comma common communication comp comp-3 comp-5 computational computational-3 computational-5 condition constant contains content control controls converting corr corresponding count crt currency cursor data-pointer date day day-of-week de debugging decimal-point default delimited delimiter depending descending destination detail down duplicates dynamic ec egi emi end enter eo eop equal equals error esi every exception exception-object exclusive extend external factory false farthest-from-zero fd filler final first float-binary-128 float-binary-32 float-binary-64 float-decimal-16 float-decimal-34 float-extended float-infinity float-long float-not-a-number-quiet float-not-a-number-signaling float-short footing for format from function-pointer get giving global greater group group-usage heading in in-arithmetic-range index indexed indicate inherits initial initialized interface interface-id into invalid is just justified key label last leading left less limit limits linage line line-counter line-sequential lines locale lock manual message method method-id minus mode modules multiple national national-edited native nearest-to-zero negative negative-infinity nested no not null number numbers numeric numeric-edited object object-computer object-reference occurs of off omitted on only optional options or order organization other overflow override packed-decimal padding page page-counter pf ph physical pic picture plus pointer position positive positive-infinity present previous printing procedures proceed program-pointer property prototype queue raising rd record records redefines reel reference references relative remainder removal renames replacing report reporting reports repository rerun reserve retry returning reversed rewind rf rh right rounded run same sd segment segment-limit select self separate sequence sequential sharing signed size sort-merge source source-computer sources standard standard-1 standard-2 status step sub-queue-1 sub-queue-2 sub-queue-3 super symbolic sync synchronized system-default table tallying terminal test text than then through thru time times top trailing true type typedef unit universal unsigned until up upon usage user-default using val-status valid validate-status value values varying with words arithmetic attribute auto away-from-zero background-color bell binary-c-long binary-encoding blink capacity center chaining classification cobol comp-1 comp-4 comp-6 comp-x computational-1 computational-4 computational-6 computational-x cycle decimal-encoding entry-convention eol eos erase expands float-binary float-decimal float-not-a-number foreground-color forever full high-order-left high-order-right highlight ignoring implements intermediate intrinsic lc_all lc_collate lc_ctype lc_messages lc_monetary lc_numeric lc_time lowlight memory nearest-away-from-zero nearest-even-intermediate nearest-toward-zero none normal paragraph prefixed prohibited recursive relation required reverse-video rounding seconds secure short standard-binary standard-decimal statement strong structure symbol tape toward-greater toward-lesser truncation ucs-4 underline utf-16 utf-8 yyyyddd yyyymmdd 3-d apply background background-high background-low bar blob bold box busy cbl clob combo-box dbclob dbcs draw drop grid grip high hot-track hscroll hscroll-pos id imp kanji low num-rows o-fill oostackptr pos prompt public rowid scroll scroll-bar shadow skip1 skip2 skip3 sql tab track-thumb unbounded variant virtual-width vscroll vscroll-bar vscroll-pos wait width wrap xml a i db in or zr Add Dec Div Inc Mul Sub abs and cos dam dec div exp fin fof fog inh ino inq ins int inx inz lfo log mac mod mul not out pan pow rms rnd shl sin sqr sub sum tab tan tb0 tb1 tb2 tb3 tb4 tb5 tb6 tb7 tb8 tb9 urd vco xin xor zar zaw zir ziw zkr zkw adsr babo buzz cent clip comb cosh diff divz fini fink fmb3 fof2 fold fout frac ftsr gain goto in32 inch init line maca moog mute nrpn outc outh outo outq outs outx outz peak port pset pvoc rand seed sinh sqrt stix tabw tanh tb10 tb11 tb12 tb13 tb14 tb15 tone vadd vco2 vdiv vexp vibr vmap vmul vpow wrap xout xyin zacl zarg zawm ziwm zkcl zkwm FLbox FLjoy FLrun adsyn ampdb atone birnd bqrez butbp butbr buthp butlp clear ctrl7 dbamp dconv delay dumpk endin endop event expon fouti foutk ftgen ftlen gauss gbuzz grain guiro igoto ihold instr integ kgoto limit linen log10 loopg loopl lpf18 madsr max_k metro noise nsamp oscil out32 outch outic outkc outq1 outq2 outq3 outq4 outs1 outs2 pareq pitch pluck portk print pvadd randh randi rbjeq readk reson rezzy rnd31 scans scanu sense space tab_i table tbvcf tempo timek times tival tonek tonex vaddv vbap4 vbap8 vbapz vcomb vcopy vdecr vdivv veloc vexpv vibes vincr vmult voice vport vpowv vpvoc vsubv vwrap wgbow xadsr zamod zkmod FLhide FLkeyb FLknob FLpack FLshow FLtabs FLtext active adsynt alpass areson atonek atonex bamboo bbcutm bbcuts biquad cabasa cauchy cggoto cigoto ckgoto clfilt cngoto convle cosinv cpsoct cpspch cpstun cpuprc cross2 crunch ctrl14 ctrl21 delay1 delayk delayr delayw deltap denorm diskin dumpk2 dumpk3 dumpk4 envlpx expseg filesr fiopen fmbell follow foscil foutir ftlen2 ftload ftmorf ftsave grain2 grain3 harmon hrtfer initc7 interp jitter linenr lineto linseg locsig loopge loople lorenz loscil lowres lpread lpslot mandel mandol mclock mdelay midic7 midiin midion mirror moscil mpulse mrtmsg mxadsr nlfilt noteon notnum ntrpol octave octcps octpch opcode oscbnk oscil1 oscil3 oscili osciln oscils oscilx outiat outipb outipc outkat outkpb outkpc pchoct phasor planet poscil printk prints pvread pvsftr pvsftw random readk2 readk3 readk4 reinit resonk resonr resonx resony resonz reverb rigoto s16b14 s32b14 sekere sfload sfplay shaker sininv spat3d spdist spsend strset table3 tablei tablew tabw_i taninv tigoto timout turnon upsamp vbap16 vcella vco2ft vdel_k vdelay vlimit vmultv vrandh vrandi wgclar xscans xscanu FLcolor FLcount FLgroup FLlabel FLpanel FLvalue aftouch ampdbfs ampmidi aresonk balance bexprnd biquada changed clockon cps2pch cpsmidi cpstmid cpstuni cpsxpch dbfsamp dcblock deltap3 deltapi deltapn deltapx dispfft display envlpxr exprand expsega expsegr filelen filter2 flanger fmmetal fmrhode fmvoice follow2 foscili fprints ftchnls ftloadk ftlptim ftsavek gogobel granule hilbert initc14 initc21 invalue jitter2 jspline linrand linsegr locsend logbtwo loopseg loscil3 lowresx lphasor lposcil lpreson lpshold marimba massign midic14 midic21 midichn midion2 midiout moogvcf noteoff nreverb nstrnum octmidi oscil1i outic14 outipat outkc14 outkpat pcauchy pchbend pchmidi phaser1 phaser2 pinkish poisson polyaft poscil3 printk2 printks product pvcross pvsanal pvsinfo pvsynth randomh randomi release repluck reverb2 rspline rtclock seqtime sfilist sfinstr sfplay3 sfplaym sfplist slider8 sndwarp soundin spat3di spat3dt specsum streson tableiw tablekt tableng tablera tablewa taninv2 tempest tlineto transeg trigger trigseq trirand turnoff unirand valpass vco2ift vdelay3 vdelayk vdelayx vexpseg vibrato vlinseg vlowres vmirror waveset weibull wgbrass wgflute wgpluck wguide1 wguide2 xtratim zakinit FLbutton FLcolor2 FLprintk FLroller FLscroll FLsetBox FLsetVal FLslider FLupdate betarand butterbp butterbr butterhp butterlp chanctrl clockoff convolve cpsmidib ctrlinit cuserrnd deltapxw distort1 downsamp duserrnd filepeak fmpercfl fmwurlie fprintks hsboscil lowpass2 lpfreson lpinterp lposcil3 maxalloc midictrl multitap nestedap octmidib oscilikt outvalue pchmidib powoftwo prealloc pvinterp pvsadsyn pvscross pvsfread pvsmaska rireturn samphold schedule semitone sensekey setksmps sfinstr3 sfinstrm sfplay3m sfpreset slider16 slider32 slider64 slider8f soundout specaddm specdiff specdisp specfilt spechist specptrk specscal spectrum sprintks subinstr svfilter tablegpw tableikt tablemix tableseg tablewkt tablexkt tb0_init tb1_init tb2_init tb3_init tb4_init tb5_init tb6_init tb7_init tb8_init tb9_init tempoval vco2init vdelayxq vdelayxs vdelayxw vecdelay wgpluck2 wterrain xscanmap zfilter2 FLbutBank FLgetsnap FLpackEnd FLprintk2 FLsetFont FLsetSize FLsetText FLsetsnap FLslidBnk FLtabsEnd dripwater eventname ktableseg noteondur osciliktp oscilikts pgmassign phasorbnk pitchamdf pvbufread readclock sandpaper scantable schedwhen sfinstr3m sfpassign slider16f slider32f slider64f sndwarpst soundoutc soundouts tablecopy tableigpw tableimix tablexseg tb10_init tb11_init tb12_init tb13_init tb14_init tb15_init timeinstk timeinsts vbap4move vbap8move vbapzmove vdelayxwq vdelayxws xscansmap FLgroupEnd FLloadsnap FLpack_end FLpanelEnd FLsavesnap FLsetAlign FLsetColor FLsetVal_i FLtabs_end filenchnls noteondur2 scanhammer schedkwhen tableicopy tambourine vbap16move vbaplsinit wgbowedbar FLgroup_end FLpanel_end FLscrollEnd FLsetColor2 mididefault midinoteoff sleighbells FLscroll_end subinstrinit FLsetPosition FLsetTextSize FLsetTextType midinoteoncps midinoteonkey midinoteonoct midinoteonpch midipitchbend schedwhenname FLsetTextColor schedkwhenname midicontrolchange midiprogramchange midipolyaftertouch midichannelaftertouch