github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/docs/parser/README.md (about)

     1  # Parser Reference
     2  
     3  This section is a glossary of Murex tokens and parser behavior.
     4  
     5  ## Other Reference Material
     6  
     7  ### Language Guides
     8  
     9  1. [Language Tour](/docs/tour.md), which is an introduction into
    10      the Murex language.
    11  
    12  2. [Rosetta Stone](/docs/user-guide/rosetta-stone.md), which is a reference
    13      table comparing Bash syntax to Murex's.
    14  
    15  3. [Builtins](/docs/commands/), for docs on the core builtins.
    16  
    17  ### Murex's Source Code
    18  
    19  The parser is located Murex's source under the `lang/` path of the project
    20  files.
    21  
    22  ## Pages
    23  
    24  * [Array (`@`) Token](../parser/array.md):
    25    Expand values as an array
    26  * [Tilde (`~`) Token](../parser/tilde.md):
    27    Home directory path variable
    28  * [`!` (not)](../parser/not-func.md):
    29    Reads the STDIN and exit number from previous process and not's it's condition
    30  * [`"Double Quote"`](../parser/double-quote.md):
    31    Initiates or terminates a string (variables expanded)
    32  * [`$Variable`](../parser/scalar.md):
    33    Expand values as a scalar
    34  * [`%(Brace Quote)`](../parser/brace-quote.md):
    35    Initiates or terminates a string (variables expanded)
    36  * [`%[]` Create Array](../parser/create-array.md):
    37    Quickly generate arrays
    38  * [`%{}` Create Map](../parser/create-object.md):
    39    Quickly generate objects and maps
    40  * [`&&` And Logical Operator](../parser/logical-and.md):
    41    Continues next operation if previous operation passes
    42  * [`'Single Quote'`](../parser/single-quote.md):
    43    Initiates or terminates a string (variables not expanded)
    44  * [`(brace quote)`](../parser/brace-quote-func.md):
    45    Write a string to the STDOUT without new line (deprecated)
    46  * [`*=` Multiply By Operator](../parser/multiply-by.md):
    47    Multiplies a variable by the right hand value (expression)
    48  * [`*` Multiplication Operator](../parser/multiplication.md):
    49    Multiplies one numeric value with another (expression)
    50  * [`+=` Add With Operator](../parser/add-with.md):
    51    Adds the right hand value to a variable (expression)
    52  * [`+` Addition Operator](../parser/addition.md):
    53    Adds two numeric values together (expression)
    54  * [`-=` Subtract By Operator](../parser/subtract-by.md):
    55    Subtracts a variable by the right hand value (expression)
    56  * [`->` Arrow Pipe](../parser/pipe-arrow.md):
    57    Pipes STDOUT from the left hand command to STDIN of the right hand command
    58  * [`-` Subtraction Operator](../parser/subtraction.md):
    59    Subtracts one numeric value from another (expression)
    60  * [`/=` Divide By Operator](../parser/divide-by.md):
    61    Divides a variable by the right hand value (expression)
    62  * [`/` Division Operator](../parser/division.md):
    63    Divides one numeric value from another (expression)
    64  * [`<read-named-pipe>`](../parser/namedpipe.md):
    65    Reads from a Murex named pipe
    66  * [`=>` Generic Pipe](../parser/pipe-generic.md):
    67    Pipes a reformatted STDOUT stream from the left hand command to STDIN of the right hand command
    68  * [`=` (arithmetic evaluation)](../parser/equ.md):
    69    Evaluate a mathematical function (deprecated)
    70  * [`>>` Append File](../parser/greater-than-greater-than.md):
    71    Writes STDIN to disk - appending contents if file already exists
    72  * [`>>` Append Pipe](../parser/pipe-append.md):
    73    Redirects STDOUT to a file and append its contents
    74  * [`?:` Elvis Operator](../parser/elvis.md):
    75    Returns the right operand if the left operand is falsy (expression)
    76  * [`??` Null Coalescing Operator](../parser/null-coalescing.md):
    77    Returns the right operand if the left operand is empty / undefined (expression)
    78  * [`?` STDERR Pipe](../parser/pipe-err.md):
    79    Pipes STDERR from the left hand command to STDIN of the right hand command (DEPRECATED)
    80  * [`[ ..Range ]`](../parser/range.md):
    81    Outputs a ranged subset of data from STDIN
    82  * [`[ Index ]`](../parser/item-index.md):
    83    Outputs an element from an array, map or table
    84  * [`[[ Element ]]`](../parser/element.md):
    85    Outputs an element from a nested structure
    86  * [`[{ Lambda }]`](../parser/lambda.md):
    87    Iterate through structured data
    88  * [`{ Curly Brace }`](../parser/curly-brace.md):
    89    Initiates or terminates a code block
    90  * [`|>` Truncate File](../parser/greater-than.md):
    91    Writes STDIN to disk - overwriting contents if file already exists
    92  * [`|` POSIX Pipe](../parser/pipe-posix.md):
    93    Pipes STDOUT from the left hand command to STDIN of the right hand command
    94  * [`||` Or Logical Operator](../parser/logical-or.md):
    95    Continues next operation only if previous operation fails