---
feature_story: FS_27_16_67_19
feature_title: line syntax
feature_status: TBD
---

This doc is an umbrella one about command line syntax.

# Syntax overview

In short, current syntax is simplistic = whitespace-separated list of `command_arg`-s.

# Parsing overview

Parsing steps:
*   entire command line is split into `command_token`-s by whitespace chars
*   `command_token`-s are filtered and grouped into `token_bucket`-s and split into:
    *   FS_96_46_42_30 `offered_arg`-s
    *   FS_20_88_05_60 `dictated_arg`-s
*   interpretation of `command_arg`-s is customizable

# Interpretation

Interpretation logic depends on:
*   server config (plugins)
*   selected func "schema" (e.g. its expected args)
*   existing indexed data

# Implementation

At the moment, the parsing logic is implemented in two classes:
*   `ParsedContext.py` for tokenization
*   `InterpContext.py` for arg consumption with respect to FS_97_64_39_94 `token_bucket`-s

# See also

*   TODO: TODO_66_09_41_16: clarify command line processing

Feature stories related to syntax more than others:
*   FS_06_99_43_60: array `prop_value`
*   FS_13_51_07_97: singled out implicit values
*   FS_15_79_76_85: line processor
*   FS_18_64_57_18: function with indefinite input data envelopes like varargs
*   FS_20_88_05_60: `dictated_arg`-s
*   FS_23_62_89_43: `tangent_token`
*   FS_32_05_46_00: `startwith` vs `contains`
*   FS_44_36_84_88: consume args one by one
*   FS_51_67_38_37: avoid impossible arg combinations
*   FS_61_67_08_53: non-searchable `arg_value`
*   FS_76_29_13_28: `command_arg` consumption priority
*   FS_90_48_11_45: always consume `dictated_arg`
*   FS_92_75_93_01: clean command line
*   FS_96_46_42_30: `offered_arg`
*   FS_97_64_39_94: `token_bucket`-s
*   FS_99_81_19_25: no space in options
