1/*
2 * Copyright 2014, Rene Gollent, rene@gollent.com.
3 * Distributed under the terms of the MIT License.
4 */
5
6
7#include "CLanguageFamilySyntaxHighlighter.h"
8
9#include <new>
10
11#include <AutoDeleter.h>
12
13#include "CLanguageFamilySyntaxHighlightInfo.h"
14#include "CLanguageTokenizer.h"
15
16
17using CLanguage::Tokenizer;
18
19
20CLanguageFamilySyntaxHighlighter::CLanguageFamilySyntaxHighlighter()
21	:
22	SyntaxHighlighter()
23{
24}
25
26
27CLanguageFamilySyntaxHighlighter::~CLanguageFamilySyntaxHighlighter()
28{
29}
30
31
32status_t
33CLanguageFamilySyntaxHighlighter::ParseText(LineDataSource* source,
34	TeamTypeInformation* typeInfo, SyntaxHighlightInfo*& _info)
35{
36	Tokenizer* tokenizer = new(std::nothrow) Tokenizer();
37	if (tokenizer == NULL)
38		return B_NO_MEMORY;
39	ObjectDeleter<Tokenizer> deleter(tokenizer);
40
41	_info = new(std::nothrow) CLanguageFamilySyntaxHighlightInfo(source,
42		tokenizer, typeInfo);
43	if (_info == NULL)
44		return B_NO_MEMORY;
45
46	deleter.Detach();
47	return B_OK;
48}
49