Files
clang-p2996/mlir/utils/tree-sitter-mlir/dialect/func.js
Ramkumar Ramachandra 10f8be19e7 tree-sitter-mlir: add a more complete grammar
Contribute a grammar, along with associated tests, from the upstream
project maintained at https://github.com/artagnon/tree-sitter-mlir. The
new grammar includes several fixes, and successfully parses 60-80% of
MLIR tests in the Arith, Math, ControlFlow, SCF, Tensor, Affine, and
Linalg dialects.

Differential Revision: https://reviews.llvm.org/D144408
2023-06-05 19:11:06 +01:00

31 lines
1.4 KiB
JavaScript

'use strict';
module.exports = {
func_dialect : $ => prec.right(choice(
// operation ::= `func.call_indirect` $callee `(`
// $callee_operands `)` attr-dict
// `:` type($callee)
// operation ::= `func.call` $callee `(` $operands `)`
// attr-dict
// `:` functional-type($operands, results)
seq(choice('func.call', 'call', 'func.call_indirect',
'call_indirect'),
field('callee', $.symbol_ref_id),
field('operands', $._value_use_list_parens),
field('attributes', optional($.attribute)),
field('return', $._function_type_annotation)),
// operation ::= `func.constant` attr-dict $value `:`
// type(results)
seq(choice('func.constant', 'constant'),
field('attributes', optional($.attribute)),
field('value', $.symbol_ref_id),
field('return', $._function_type_annotation)),
seq('func.func', $._op_func),
seq(choice('func.return', 'return'),
field('attributes', optional($.attribute)),
field('results', optional($._value_use_type_list)))))
}