iCSV:

iCSV     ::= firstlineheader_sectiondata_section

no references


firstline:

firstline
         ::= '#' ' ' 'iCSV' ' ' version_number ' ' 'UTF-8' newline

referenced by:


header_section:

header_section
         ::= metadata_headermetadata_sectionfields_headerfields_section

referenced by:


metadata_header:

metadata_header
         ::= '#' ' ' '[METADATA]' newline

referenced by:


metadata_section:

metadata_section
         ::= ( '#' ( whitespace ( required_metadata | recommended_metadata | other_metadata ) )? lineend | newline )+

referenced by:


required_metadata:

required_metadata
         ::= 'field_delimiter' assignmentfield_delimiter
           | 'geometry' assignmentgeometry
           | 'srid' assignmentEPSG_code

referenced by:


recommended_metadata:

recommended_metadata
         ::= 'station_id' assignmentalphanumeric
           | 'timestamp_meaning' assignmenttimestamp_meanings
           | 'nodata' assignment ( integer | float )
           | 'timezone' assignment ( integer | float | tz_string )
           | ( 'doi' | 'reference' ) assignmentvalue

referenced by:


other_metadata:

other_metadata
         ::= keyassignmentvalue

referenced by:


fields_header:

fields_header
         ::= '#' ' ' '[FIELDS]' newline

referenced by:


fields_section:

fields_section
         ::= ( '#' ( whitespace ( required_fields | recommended_fields | other_fields ) )? lineend | newline )+

referenced by:


required_fields:

required_fields
         ::= 'fields' assignmentvalues

referenced by:


recommended_fields:

recommended_fields
         ::= ( 'units_multiplier' | 'units_offset' | 'units' | 'long_name' | 'standard_name' ) assignmentvalues
           | 'timestamp_meaning' assignmenttimestamp_meanings

referenced by:


other_fields:

other_fields
         ::= keyassignmentvalues

referenced by:


data_section:

data_section
         ::= '#' ' ' '[DATA]' newlinedataline+

referenced by:


dataline:

dataline ::= value ( field_delimitervalue )* newline

referenced by:


values:

values   ::= value ( field_delimiterwhitespacevalue )*

referenced by:


key:

key      ::= charalphanumeric*

referenced by:


value:

value    ::= unicode-char*

referenced by:


assignment:

assignment
         ::= whitespace? '=' whitespace?

referenced by:


field_delimiter:

field_delimiter
         ::= [,|\/:;]

referenced by:


version_number:

version_number
         ::= digit* ( '.' alphanumeric+ )? ( '.' alphanumeric+ )?

referenced by:


EPSG_code:

EPSG_code
         ::= 'EPSG' ':' digitdigitdigitdigit

referenced by:


geometry:

geometry ::= ( 'POINT(' | 'POINTZ(' float ) floatfloat ')'
           | WKT_string
           | column_name

referenced by:


timestamp:

timestamp
         ::= ISO-8601

no references


timestamp_meanings:

timestamp_meanings
         ::= 'beginning'
           | 'end'
           | 'middle'
           | 'instantaneous'
           | 'other'
           | 'undefined'

referenced by:


whitespace:

whitespace
         ::= ( tab | space )+

referenced by:


comment:

comment  ::= '#' whitespace? unicode-char?

referenced by:


lineend:

lineend  ::= ( whitespace | comment )? newline

referenced by:


newline:

newline  ::= #x0A

referenced by:


tab:

tab      ::= #x9

referenced by:


space:

space    ::= #x20

referenced by:


char:

char     ::= [a-zA-Z]

referenced by:


digit:

digit    ::= [0-9]

referenced by:


integer:

integer  ::= [+#x2D]? digit+

referenced by:


alphanumeric:

alphanumeric
         ::= ( digit | char )+

referenced by:


hex:

hex      ::= ( digit | [a-fA-F] )+

no references


float:

float    ::= integer '.' digit*

referenced by:


unicode-char:

unicode-char
         ::= [#x9#xA#xD#x20-#xD7FF#xE000-#xFFFD#x10000-#x10FFFF]

referenced by: