summaryrefslogtreecommitdiff
path: root/llama.cpp/common/jinja/parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'llama.cpp/common/jinja/parser.h')
-rw-r--r--llama.cpp/common/jinja/parser.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/llama.cpp/common/jinja/parser.h b/llama.cpp/common/jinja/parser.h
new file mode 100644
index 0000000..f1cc021
--- /dev/null
+++ b/llama.cpp/common/jinja/parser.h
@@ -0,0 +1,21 @@
+#pragma once
+
+#include "lexer.h"
+#include "runtime.h"
+#include "utils.h"
+
+#include <string>
+#include <stdexcept>
+
+namespace jinja {
+
+// parse from a list of tokens into an AST (program)
+// may throw parser_exception on error
+program parse_from_tokens(const lexer_result & lexer_res);
+
+struct parser_exception : public std::runtime_error {
+ parser_exception(const std::string & msg, const std::string & source, size_t pos)
+ : std::runtime_error(fmt_error_with_source("parser", msg, source, pos)) {}
+};
+
+} // namespace jinja