GnuCOBOL syntax diagrams

This is a work in progress: February 7th, 2016

By Brian Tiffin, modelled on code and data used for the SQLite project developed by Dr. Richard Hipp.

These images, once verfied for correctness, will be dedicated to the public domain, but until that time, the diagrams are not intended for redistribution.


Non bold font indicates a GnuCOBOL extension to standard COBOL, as understood by the author.

The "by" in the varying-phrase image is in lowercase as GnuCOBOL does not allow an optional "BY 1" phrase, the BY increment is mandatory in GnuCOBOL.

Some standard COBOL syntax is completely omitted, as it is unsupported by GnuCOBOL

GnuCOBOL does not claim any level of conformance or compliance to any published COBOL specifications.

These diagrams do not reflect any level of COBOL authority and cannot be assumed to be correct or complete.

cobc-marketing:

cobol-directive:

copy-directive:

replace-directive:

define-directive:

if-directive:

cobol-statement:

accept-statement:

add-statement:

rounded-phrase:

allocate-statement:

alter-statement:

call-statement:

cancel-statement:

close-statement:

compute-statement:

commit-statement:

continue-statement:

delete-statement:

display-statement:

divide-statement:

evaluate-statement:

exit-statement:

free-statement:

generate-statement:

go-statement:

goback-statement:

if-statement:

initialize-statement:

category-name:

initiate-statement:

inspect-statement:

tallying-phrase:

before-after-phrase:

replacing-phrase:

merge-statement:

move-statement:

multiply-statement:

open-statement:

perform-statement:

perform-procedure-statement:

perform-inline-statement:

varying-phrase:

read-statement:

ready-statement:

release-statement:

reset-statement:

return-statement:

rewrite-statement:

rollback-statement:

search-statement:

search-linear-statement:

search-all-statement:

set-statement:

sort-statement:

sort-file-statement:

sort-table-statement:

start-statement:

stop-statement:

string-statement:

subtract-statement:

suppress-statement:

terminate-statement:

transform-statement:

unlock-statement:

unstring-statement:

use-statement:

write-statement:

write-sequential-statement:

write-random-statement: