MCPcopy Create free account
hub / github.com/abetlen/llama-cpp-python / get_recursive_refs

Method get_recursive_refs

llama_cpp/llama_grammar.py:906–923  ·  view source on GitHub ↗
(ks, first_is_optional)

Source from the content-addressed store, hash-verified

904 rule += ' "," space ( '
905
906 def get_recursive_refs(ks, first_is_optional):
907 [k, *rest] = ks
908 kv_rule_name = prop_kv_rule_names[k]
909 if k == "*":
910 res = self._add_rule(
911 f"{name}{'-' if name else ''}additional-kvs",
912 f'{kv_rule_name} ( "," space ' + kv_rule_name + " )*",
913 )
914 elif first_is_optional:
915 res = f'( "," space {kv_rule_name} )?'
916 else:
917 res = kv_rule_name
918 if len(rest) > 0:
919 res += " " + self._add_rule(
920 f"{name}{'-' if name else ''}{k}-rest",
921 get_recursive_refs(rest, first_is_optional=True),
922 )
923 return res
924
925 rule += " | ".join(
926 get_recursive_refs(optional_props[i:], first_is_optional=False)

Callers

nothing calls this directly

Calls 1

_add_ruleMethod · 0.95

Tested by

no test coverage detected