tree-sitter-dfraw/grammar.js
2021-09-23 22:58:36 -04:00

46 lines
653 B
JavaScript

module.exports = grammar({
name: 'dfraw',
rules: {
source_file: $ => repeat($._statement),
_statement: $ => choice(
$.bracket_statement,
$.comment
),
bracket_statement: $ => seq(
'[',
$.parameter_list,
']'
),
parameter_list: $ => seq(
$.declaration,
optional($.separator),
repeat(seq(
$._parameter,
optional($.separator)
))
),
_parameter: $ => choice(
$.number,
$.large,
$.string,
),
declaration: $ => /[A-Z_\d]+/,
number: $ => token(prec(1, /\d+/)),
large: $ => /[A-Z_\d]+/,
string: $ => /[A-Za-z \-,.'/\\]+/,
separator: $ => /:/,
comment: $ => /[^\[\]\s]+/
}
});