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