Přeskočit obsah

Parser-combinátor (Parsec)

Technika parser-combinátoru se používá pro parsování událostí ve formátu prostého textu. Je založena na SP-Lang Parsec výrazech.

Pro parsování původních událostí použijte následující deklaraci:

parser.yaml
define:
    name: Můj Parser
    type: parsec/parser

parse:
    !PARSE.KVLIST
    - ...
    - ...
    - ...
subparser.yaml
define:
    name: Můj Parser
    type: parsec/parser
    field: <custom_field>

parse:
    !PARSE.KVLIST
    - ...
    - ...
    - ...

Když je field specifikováno, parsování se aplikuje na toto pole, jinak se aplikuje na původní událost. Proto musí být přítomno v každém sub-parseru.

Typy specifikace field:

  1. field: <custom_field> - běžné pole předparsované předchozím parserem.

  2. field: json /key/foo - JSON klíč /key/foo z předparsovaného JSON objektu json. Název JSON objektu a JSON klíč musí být odděleny mezerou. JSON klíč vždy začíná s /, a každá další úroveň je oddělena /.

  3. JSON klíč se specifikovaným typem, ve výchozím nastavení předpokládáme typ string.

    field:
        json: /key/foo
            type: int
    

  4. field: xml /key/foo/@attribute - XML klíč /key/foo/@attribute z předparsovaného XML objektu xml. Název XML objektu a XML klíč musí být odděleny mezerou. XML klíč vždy začíná s /, a každá další úroveň je oddělena /. Atribut třídy je označen @.