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