Skip to content

Commit

Permalink
Fix value nodes
Browse files Browse the repository at this point in the history
  • Loading branch information
ObserverOfTime committed Nov 3, 2023
1 parent dba4f91 commit e3ad4cb
Show file tree
Hide file tree
Showing 8 changed files with 1,830 additions and 1,578 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ Cargo.lock
build/
target/
*.wasm
*.o
38 changes: 19 additions & 19 deletions grammar.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,36 +39,36 @@ module.exports = grammar({
seq(key('DEVPATH'), $.match_op, $.value),
seq(key('KERNEL'), $.match_op, $.value),
seq(key('KERNELS'), $.match_op, $.value),
seq(key('NAME'), $.match_op, $._sub_value),
seq(key('SYMLINK'), $.match_op, $._sub_value),
seq(key('NAME'), $.match_op, alias($._sub_value, $.value)),
seq(key('SYMLINK'), $.match_op, alias($._sub_value, $.value)),
seq(key('SUBSYSTEM'), $.match_op, $.value),
seq(key('SUBSYSTEMS'), $.match_op, $.value),
seq(key('DRIVER'), $.match_op, $.value),
seq(key('DRIVERS'), $.match_op, $.value),
seq(key('ATTR'), I('{'), $.attribute, '}', $.match_op, $.value),
seq(key('ATTRS'), I('{'), $.attribute, '}', $.match_op, $.value),
seq(key('SYSCTL'), I('{'), $.kernel_param, '}', $.match_op, $.value),
seq(key('ENV'), I('{'), $.env_var, '}', $.match_op, $.value),
seq(key('ENV'), I('{'), $.env_var, '}', $.match_op, alias($._sub_value, $.value)),
seq(key('CONST'), I('{'), $.system_const, '}', $.match_op, $.value),
seq(key('TAG'), $.match_op, $.value),
seq(key('TAGS'), $.match_op, $.value),
seq(key('TEST'), O(seq(I('{'), $.octal, '}')), $.match_op, $.value),
seq(key('PROGRAM'), choice($.match_op, $.assignment_op), $._sub_value),
seq(key('PROGRAM'), choice($.match_op, $.assignment_op), alias($._sub_value, $.value)),
seq(key('RESULT'), $.match_op, $.value),
),

assignment: $ => choice(
seq(key('NAME'), $.assignment_op, $._sub_value),
seq(key('SYMLINK'), $.assignment_op, $._sub_value),
seq(key('OWNER'), $.assignment_op, $._sub_value),
seq(key('GROUP'), $.assignment_op, $._sub_value),
seq(key('MODE'), $.assignment_op, $._sub_value),
seq(key('SECLABEL'), I('{'), $.seclabel, '}', $.assignment_op, $._sub_value),
seq(key('NAME'), $.assignment_op, alias($._sub_value, $.value)),
seq(key('SYMLINK'), $.assignment_op, alias($._sub_value, $.value)),
seq(key('OWNER'), $.assignment_op, alias($._sub_value, $.value)),
seq(key('GROUP'), $.assignment_op, alias($._sub_value, $.value)),
seq(key('MODE'), $.assignment_op, alias($._sub_value, $.value)),
seq(key('SECLABEL'), I('{'), $.seclabel, '}', $.assignment_op, alias($._sub_value, $.value)),
seq(key('ATTR'), I('{'), $.attribute, '}', $.assignment_op, $.value),
seq(key('SYSCTL'), I('{'), $.kernel_param, '}', $.assignment_op, $.value),
seq(key('ENV'), I('{'), $.env_var, '}', $.assignment_op, $.value),
seq(key('ENV'), I('{'), $.env_var, '}', $.assignment_op, alias($._sub_value, $.value)),
seq(key('TAG'), $.assignment_op, $.value),
seq(key('RUN'), O(seq(I('{'), $.run_type, '}')), $.assignment_op, $._sub_value),
seq(key('RUN'), O(seq(I('{'), $.run_type, '}')), $.assignment_op, alias($._sub_value, $.value)),
seq(key('LABEL'), $.assignment_op, $.value),
seq(key('GOTO'), $.assignment_op, $.value),
seq(key('IMPORT'), I('{'), $.import_type, '}', choice($.assignment_op, $.match_op), $.value),
Expand Down Expand Up @@ -102,16 +102,16 @@ module.exports = grammar({
assignment_op: _ => token(choice('=', '-=', '+=', ':=')),

value: $ => choice(
seq('"', O($._content), I('"')),
seq('e', I('"'), O($._c_content), I('"')),
seq('"', O($.content), I('"')),
seq('e', I('"'), O(alias($._c_content, $.content)), I('"')),
),

_sub_value: $ => alias(choice(
seq('"', O($._sub_content), I('"')),
seq('e', I('"'), O($._sub_c_content), I('"')),
), $.value),
_sub_value: $ => choice(
seq('"', O(alias($._sub_content, $.content)), I('"')),
seq('e', I('"'), O(alias($._sub_c_content, $.content)), I('"')),
),

_content: $ => repeat1(
content: $ => repeat1(
choice(
/[^"]/,
'\\"',
Expand Down
Loading

0 comments on commit e3ad4cb

Please sign in to comment.