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 13class BString; 14class ExpressionResult; 15class SyntaxHighlighter; 16class TeamTypeInformation; 17class Type; 18class ValueNode; 19class ValueNodeManager; 20 21 22class SourceLanguage : public BReferenceable { 23public: 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