#rpg #parser #arguments-parser #game #chat-commands

bin+lib rpg-chat-command-parser

A command line parser for RPG-like chat commands. Processes commands such as '/heal Player1', '/equip sword', or '/party invite Player2', validates their structure, and produces structured output for integration into games.

1 unstable release

0.1.0 Nov 24, 2024

#1268 in Parser implementations

Download history 115/week @ 2024-11-22 17/week @ 2024-11-29 5/week @ 2024-12-06

137 downloads per month

MIT license

16KB
198 lines

rpg-chat-command-parser

rpg-chat-command-parser is a Rust library and CLI for parsing and validating RPG-style chat commands. It processes commands in the format commonly used in role-playing games, ensuring correct syntax and extracting useful data for integration into games or simulation systems.

Parsing Process

Supported Commands

The parser processes commands like:

  • /cast fireball --power=high
  • /equip sword
  • /heal Player1 --boost=strong

Grammar Overview

The grammar is defined using Pest and follows these rules:

  1. Command: Must start with /.
  2. Verb: Specifies the action (e.g., cast, equip).
  3. Target: Optional object of the action (e.g., fireball, sword).
  4. Flags: Optional key-value modifiers (e.g., --power=high).

Diagram of Grammar Rules

command:

command

command  ::= '/' 'alphanumeric word' 'space' target 'space' flag*

target:

target

target   ::= 'alphanumeric word'
           | quoted_string

referenced by:

  • command

flag:

flag

flag     ::= '--' 'alphanumeric word' '=' value?
           | bad_flag

referenced by:

  • command

value:

value

value    ::= 'alphanumeric word'
           | quoted_string

referenced by:

  • flag

quoted_string:

quoted_string

quoted_string
         ::= '"' 'text without double-quotes' '"'

referenced by:

  • target
  • value

bad_flag

Usage

Parsed commands produce a structured output:

{
  "verb": "cast",
  "target": "fireball",
  "flags": {
    "power": "high"
  }
}

Dependencies

~4MB
~74K SLoC