xref: /llvm-project/mlir/utils/tree-sitter-mlir/dialect/func.js (revision 10f8be19e7562624c0e63872e28cc963e03e56a5)
1*10f8be19SRamkumar Ramachandra'use strict';
2*10f8be19SRamkumar Ramachandra
3*10f8be19SRamkumar Ramachandramodule.exports = {
4*10f8be19SRamkumar Ramachandra  func_dialect : $ => prec.right(choice(
5*10f8be19SRamkumar Ramachandra                   // operation ::= `func.call_indirect` $callee `(`
6*10f8be19SRamkumar Ramachandra                   // $callee_operands `)` attr-dict
7*10f8be19SRamkumar Ramachandra                   //               `:` type($callee)
8*10f8be19SRamkumar Ramachandra                   // operation ::= `func.call` $callee `(` $operands `)`
9*10f8be19SRamkumar Ramachandra                   // attr-dict
10*10f8be19SRamkumar Ramachandra                   //               `:` functional-type($operands, results)
11*10f8be19SRamkumar Ramachandra                   seq(choice('func.call', 'call', 'func.call_indirect',
12*10f8be19SRamkumar Ramachandra                              'call_indirect'),
13*10f8be19SRamkumar Ramachandra                       field('callee', $.symbol_ref_id),
14*10f8be19SRamkumar Ramachandra                       field('operands', $._value_use_list_parens),
15*10f8be19SRamkumar Ramachandra                       field('attributes', optional($.attribute)),
16*10f8be19SRamkumar Ramachandra                       field('return', $._function_type_annotation)),
17*10f8be19SRamkumar Ramachandra
18*10f8be19SRamkumar Ramachandra                   // operation ::= `func.constant` attr-dict $value `:`
19*10f8be19SRamkumar Ramachandra                   // type(results)
20*10f8be19SRamkumar Ramachandra                   seq(choice('func.constant', 'constant'),
21*10f8be19SRamkumar Ramachandra                       field('attributes', optional($.attribute)),
22*10f8be19SRamkumar Ramachandra                       field('value', $.symbol_ref_id),
23*10f8be19SRamkumar Ramachandra                       field('return', $._function_type_annotation)),
24*10f8be19SRamkumar Ramachandra
25*10f8be19SRamkumar Ramachandra                   seq('func.func', $._op_func),
26*10f8be19SRamkumar Ramachandra
27*10f8be19SRamkumar Ramachandra                   seq(choice('func.return', 'return'),
28*10f8be19SRamkumar Ramachandra                       field('attributes', optional($.attribute)),
29*10f8be19SRamkumar Ramachandra                       field('results', optional($._value_use_type_list)))))
30*10f8be19SRamkumar Ramachandra}
31