Chain Language

Chain is serial data description language.

Use

  • cui
  • argument parser
  • inter-application communication
  • serialize

Syntax

For example, tiger 's cui is chain language.

tiger run --taskLocation 'abc' --taskName 'tiger_sample.yaml'

run is head.
--taskLocation 'abc' and --taskName 'tiger_sample.yaml' is option.
There is no example, -log is flag.

Chain contains only Head, Option, and Flag.

Each name must be unique

Head name, option name, and flag name must not be duplicate.

  1. head position is the beginning.
  2. head prefix is no hypen.
  3. head is not empty.
  4. head quantity must be 0 or 1.

Option

  1. option position is free.
  2. option prefix is double-hypen.
  3. option is not empty.
  4. option quantity is 0 or more.
  5. option value quantity is 0 or more.
    • In the above example, 'abc' and 'tiger_sample.yaml' is option value.
  6. option value position is right behind option or right behind option value.
    • you can make a List by placing option value in a row.
    • example, --something 'a' 'b' 'c'
  7. if the option value prefix is ​​hypen, an escape is required.
    • escape sequence is \.
    • example, --something '\-\-great data'
  8. option value is available empty.
    • example, --something '' 'b' 'c'

Flag

  1. flag position is free.
  2. flag prefix is single-hypen.
  3. flag is not empty.
  4. flag quantity is 0 or more.

Delimiter

  1. delimiter is space only.
  2. space quantity is 1 or more.

Include white space

if you want to include white space in serial source, Please circle it with single or double quotation.
example: --something 'hello world'

Include quotation

if you want to include single quotation in serial source, Please circle it with double quotation.
example: --something "abc'def'ghi"
if you want to include double quotation in serial source, Please circle it with single quotation.
example: --something 'abc"def"ghi'

Other

Triple-hypen or more prefix

Valid as head or option value.
But, Not recommended.

starts with a hyphen to option value

Escape is possible.
example: --something '\-\-abc'

There is no shorthand for head, option, and flag

There is only one way to specify.

Code example

The example code is in the example folder.

Libraries

bpriver_chain