Comments in this syntax presentation are enclosed in double quotes ".
CSV_file_format ::=
[[
CSV_record ]
CSV_record_separator [[
CSV_record ]
CSV_record_separator ]... ] [
CSV_record]
CSV_record ::=
{ [
CSV_field CSV_delimiter]...
CSV_non-empty_field |
CSV_field CSV_delimiter [
CSV_field CSV_delimiter]... }
CSV_record_separator ::=
{ X'04'
"(EBCDIC control character NEL)" |
X'0D'
"(EBCDIC control character CR)" |
X'15'
"(EBCDIC control character LF)" |
X'25'
"(EBCDIC control character)" |
"End of record of a BS2000SAM file" }
CSV_field ::= {
CSV non-empty field |
"(leer)" }
CSV_non-empty_field ::= {
CSV plain field |
CSV quoted field }
CSV_plain_field ::=
CSV_plain_intro [
CSV_plain_part ]...
CSV_plain_intro ::= {
CSV_escape_sequence |
"all characters except CSV_record_separator, CSV_delimiter, CSV_escape und CSV_quote" }
CSV_plain_part ::= {
CSV_escape_sequence |
"all characters except CSV_record_separator,
CSV_delimiter und CSV_escape" }
CSV_quoted_field ::=
CSV_quote [
CSV_quoted part ]...
CSV_quote
CSV_quoted_part ::=
{
CSV_quote CSV_quote |
CSV_escape_sequence |
"End of record of a BS2000SAM file" |
"all characters except CSV_quote und CSV_escape" }
CSV_escape_sequence ::=
{
CSV_escape CSV_record_separator |
CSV_escape CSV_delimiter |
CSV_escape CSV_quote |
CSV_escape CSV_escape }
CSV_delimiter ::=
character
CSV_quote ::=
character
CSV_escape ::=
character
For details of CSV_delimiter, CSV_quote, and CSV_escape, see also the syntax description of the CSV function on "CSV() - Reading a BS2000 file as a table".