1 /* 2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Copyright 2014, Rene Gollent, rene@gollent.com. 4 * Distributed under the terms of the MIT License. 5 */ 6 #ifndef SOURCE_LANGUAGE_H 7 #define SOURCE_LANGUAGE_H 8 9 10 #include <Referenceable.h> 11 12 13 class BString; 14 class ExpressionResult; 15 class SyntaxHighlighter; 16 class TeamTypeInformation; 17 class Type; 18 class ValueNode; 19 class ValueNodeManager; 20 21 22 class SourceLanguage : public BReferenceable { 23 public: 24 virtual ~SourceLanguage(); 25 26 virtual const char* Name() const = 0; 27 28 virtual SyntaxHighlighter* GetSyntaxHighlighter() const; 29 // returns a reference, 30 // may return NULL, if not available 31 32 virtual status_t EvaluateExpression(const BString& expression, 33 ValueNodeManager* manager, 34 TeamTypeInformation* info, 35 ExpressionResult*& _output, 36 ValueNode*& _neededNode); 37 }; 38 39 40 #endif // SOURCE_LANGUAGE_H 41