the if statement in ```bash a= c= b= if true; then true; fi ``` gets parsed as a command name: ``` (program [0, 0] - [3, 0] (command [0, 0] - [2, 7] (variable_assignment [0, 0] - [0, 2] name: (variable_name [0, 0] - [0, 1])) (variable_assignment [0, 3] - [0, 5] name: (variable_name [0, 3] - [0, 4])) (variable_assignment [1, 0] - [1, 2] name: (variable_name [1, 0] - [1, 1])) name: (command_name [2, 0] - [2, 2] (word [2, 0] - [2, 2])) argument: (word [2, 3] - [2, 7])) (command [2, 9] - [2, 18] name: (command_name [2, 9] - [2, 13] (word [2, 9] - [2, 13])) argument: (word [2, 14] - [2, 18])) (command [2, 20] - [2, 22] name: (command_name [2, 20] - [2, 22] (word [2, 20] - [2, 22])))) ``` while ```bash a= c= b= if true; then true; fi ``` parses as an if_statement: ``` (program [0, 0] - [2, 0] (variable_assignments [0, 0] - [0, 8] (variable_assignment [0, 0] - [0, 2] name: (variable_name [0, 0] - [0, 1])) (variable_assignment [0, 3] - [0, 5] name: (variable_name [0, 3] - [0, 4])) (variable_assignment [0, 6] - [0, 8] name: (variable_name [0, 6] - [0, 7]))) (if_statement [1, 0] - [1, 22] condition: (command [1, 3] - [1, 7] name: (command_name [1, 3] - [1, 7] (word [1, 3] - [1, 7]))) (command [1, 14] - [1, 18] name: (command_name [1, 14] - [1, 18] (word [1, 14] - [1, 18]))))) ```
Activity
amaanq commentedon Feb 10, 2024
reserved rules api might be needed for this (not a thing yet)