Fix test regression: incomplete errors no longer cause var parsing to fail
diff --git a/Function.h b/Function.h
index cb3ba1c..2cb862f 100644
--- a/Function.h
+++ b/Function.h
@@ -3,10 +3,17 @@
 #include "Token.h"
 #include "AstNode.h"
 
+using SentenceResultFn = std::function<QList<Token> (QList<Token>)>;
+
 class Sentence {
 public:
 	Sentence() = default;
+	~Sentence();
 	Sentence(QList<Token> pattern, QList<AstNode> result);
+	Sentence(QList<Token> pattern, SentenceResultFn result);
+
+	bool isExternal() const;
+	QList<Token> externResult(QList<Token> args) const;
 
 	QList<Token> pattern() const;
 	QList<AstNode> result() const;
@@ -16,6 +23,7 @@
 protected:
 	QList<Token> _pattern;
 	QList<AstNode> _result;
+	SentenceResultFn _native = nullptr;
 };
 
 class Function {
@@ -25,6 +33,7 @@
 	Function(QString name, QList<Sentence> sentences);
 
 	void addSentence(Sentence sentence);
+	void addNativeSentence(QString pattern, SentenceResultFn fn);
 
 	QString name() const;
 	QList<Sentence> sentences() const;