NAME

lex.pl - Run GraphViz2::Marpa::Lexer.

SYNOPSIS

lex.pl [options]

Options:
-description graphDescription
-help
-input_file aDotInputFileName
-lexed_file aLexedOutputFileName
-maxlevel logOption1
-minlevel logOption2
-report_items Boolean
-report_stt Boolean
-stt_file sttFileName
-timeout seconds
-type '' or csv or ods

Exit value: 0 for success, 1 for failure. Die upon error.

OPTIONS

-description graphDescription

Read the DOT-style graph definition from the command line.

You are strongly encouraged to surround this string with '...' to protect it from your shell.

See also the -input_file option to read the description from a file.

The -description option takes precedence over the -input_file option.

Default: ''.

-help

Print help and exit.

-input_file aDotInputFileName

Read the DOT-style graph definition from a file.

See also the -description option to read the graph definition from the command line.

The -description option takes precedence over the -input_file option.

Default: ''.

See the distro for data/*.dot.

-lexed_file aLexedOutputFileName

Specify the name of a CSV file of lexed tokens to write. This file can be input to the parser.

Default: ''.

The default means the file is not written.

See the distro for data/*.lex.

-maxlevel logOption1

This option affects Log::Handler.

See the Log::Handler docs.

Default: 'notice'.

-minlevel logOption2

This option affects Log::Handler.

See the Log::Handler docs.

Default: 'error'.

No lower levels are used.

-report_items Boolean

Log the items recognised by the lexer.

Default: 0.

-report_stt Boolean

Log the State Transition Table.

Calls Set::FA::Element.report(). Set min and max log levels to 'info' for this.

Default: 0.

-stt_file sttFileName

Specify which file contains the State Transition Table.

Default: ''.

The default value means the STT is read from the source code of GraphViz2::Marpa::Lexer.

Candidate files are '' and 'data/default.stt.csv'.

The type of this file must be specified by the -type option.

If the file name matches /csv$/, the value of the -type option is set to 'csv'.

-timeout seconds

Run the DFA for at most this many seconds.

Default: 10.

-type '' or cvs or ods

Specify the type of the stt_file: '' for internal STT and 'csv' for CSV.

Default: ''.

The default value means the STT is read from the source code of GraphViz2::Marpa::Lexer.

This option must be used with the -stt_file option.

Warning: The 'ods' option is disabled, because I can find no way in LibreOffice to make it operate in ASCII. What happens is that when you type " (i.e. the double-quote character on the keyboard), LibreOffice inserts a different double-quote character, which, when exported as CSV in Unicode format, produces these 3 bytes: 0xe2, 0x80, 0x9c. This means that if you edit the STT, you absolutely must export to a CSV file in ASCII format. It also means that DOT identifiers in (normal) double-quotes will never match the double-quotes in the *.ods file.