diff options
author | Andras Timar <atimar@suse.com> | 2013-02-15 13:02:10 +0100 |
---|---|---|
committer | Andras Timar <atimar@suse.com> | 2013-02-16 12:55:03 +0100 |
commit | c16e9f4ed97f65357e9986f46ad88ee9f2237997 (patch) | |
tree | 9da5c0056d4aad772a72d57f7bbf07d24ec2478a /svtools/inc | |
parent | c4aa2c4d7eb1cef0f3b172d1dbc4e51e9b379b80 (diff) |
Move SyntaxHighlighter class from svtools to comphelper
We use this class in helpcompiler, and it is not desirable to
compile svtools (thus half of LibreOffice) for a build tool
in cross-compiling environment.
Change-Id: I5e6bc3e576af41eb03c1420dd347c542306f69fa
Diffstat (limited to 'svtools/inc')
-rw-r--r-- | svtools/inc/svtools/editsyntaxhighlighter.hxx | 2 | ||||
-rw-r--r-- | svtools/inc/svtools/svmedit.hxx | 3 | ||||
-rw-r--r-- | svtools/inc/svtools/syntaxhighlight.hxx | 177 |
3 files changed, 3 insertions, 179 deletions
diff --git a/svtools/inc/svtools/editsyntaxhighlighter.hxx b/svtools/inc/svtools/editsyntaxhighlighter.hxx index 7f81ae6327ca..747d0567c213 100644 --- a/svtools/inc/svtools/editsyntaxhighlighter.hxx +++ b/svtools/inc/svtools/editsyntaxhighlighter.hxx @@ -20,8 +20,8 @@ #ifndef _EDITSYNTAXHIGHLIGHTER_HXX #define _EDITSYNTAXHIGHLIGHTER_HXX +#include <comphelper/syntaxhighlight.hxx> #include <svtools/svmedit.hxx> -#include <svtools/syntaxhighlight.hxx> #include <svtools/svtdllapi.h> #include <svtools/colorcfg.hxx> diff --git a/svtools/inc/svtools/svmedit.hxx b/svtools/inc/svtools/svmedit.hxx index e6e4f0bbd8cb..c0672a520824 100644 --- a/svtools/inc/svtools/svmedit.hxx +++ b/svtools/inc/svtools/svmedit.hxx @@ -20,9 +20,10 @@ #ifndef _SVEDIT_HXX #define _SVEDIT_HXX +#include <vcl/svapp.hxx> #include <vcl/vclmedit.hxx> -#include <svtools/syntaxhighlight.hxx> +#include <comphelper/syntaxhighlight.hxx> #include <svtools/svtdllapi.h> #include <svtools/colorcfg.hxx> diff --git a/svtools/inc/svtools/syntaxhighlight.hxx b/svtools/inc/svtools/syntaxhighlight.hxx deleted file mode 100644 index 60e917dd967a..000000000000 --- a/svtools/inc/svtools/syntaxhighlight.hxx +++ /dev/null @@ -1,177 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ -#ifndef _SVTOOLS_SYNTAXHIGHLIGHT_HXX -#define _SVTOOLS_SYNTAXHIGHLIGHT_HXX - -#include <list> - -#include <osl/mutex.hxx> - -#include <vcl/svapp.hxx> - -#include <tools/stream.hxx> -#include <tools/shl.hxx> - -#include <svl/brdcst.hxx> -#include <svtools/svtdllapi.h> - - -#if defined CDECL -#undef CDECL -#endif - -// for the bsearch -#ifdef WNT -#define CDECL _cdecl -#endif -#if defined(UNX) -#define CDECL -#endif -#ifdef UNX -#include <sys/resource.h> -#endif - -#include <stdio.h> - -#include <tools/string.hxx> -#include <tools/gen.hxx> - - -// Token-Typen TT_... -enum TokenTypes -{ - TT_UNKNOWN, - TT_IDENTIFIER, - TT_WHITESPACE, - TT_NUMBER, - TT_STRING, - TT_EOL, - TT_COMMENT, - TT_ERROR, - TT_OPERATOR, - TT_KEYWORDS, - TT_PARAMETER -}; - -struct HighlightPortion { sal_uInt16 nBegin; sal_uInt16 nEnd; TokenTypes tokenType; }; - - -typedef std::vector<HighlightPortion> HighlightPortions; - -///////////////////////////////////////////////////////////////////////// -// Hilfsklasse zur Untersuchung von JavaScript-Modulen, zunaechst zum -// Heraussuchen der Funktionen, spaeter auch zum Syntax-Highlighting verwenden - -// Flags fuer Zeichen-Eigenschaften -#define CHAR_START_IDENTIFIER 0x0001 -#define CHAR_IN_IDENTIFIER 0x0002 -#define CHAR_START_NUMBER 0x0004 -#define CHAR_IN_NUMBER 0x0008 -#define CHAR_IN_HEX_NUMBER 0x0010 -#define CHAR_IN_OCT_NUMBER 0x0020 -#define CHAR_START_STRING 0x0040 -#define CHAR_OPERATOR 0x0080 -#define CHAR_SPACE 0x0100 -#define CHAR_EOL 0x0200 - -#define CHAR_EOF 0x00 - - -// Sprachmodus des HighLighters (spaeter eventuell feiner -// differenzieren mit Keyword-Liste, C-Kommentar-Flag) -enum HighlighterLanguage -{ - HIGHLIGHT_BASIC, - HIGHLIGHT_SQL -}; - -class SimpleTokenizer_Impl -{ - HighlighterLanguage aLanguage; - // Zeichen-Info-Tabelle - sal_uInt16 aCharTypeTab[256]; - - const sal_Unicode* mpStringBegin; - const sal_Unicode* mpActualPos; - - // Zeile und Spalte - sal_uInt32 nLine; - sal_uInt32 nCol; - - sal_Unicode peekChar( void ) { return *mpActualPos; } - sal_Unicode getChar( void ) { nCol++; return *mpActualPos++; } - - // Hilfsfunktion: Zeichen-Flag Testen - sal_Bool testCharFlags( sal_Unicode c, sal_uInt16 nTestFlags ); - - // Neues Token holen, Leerstring == nix mehr da - sal_Bool getNextToken( /*out*/TokenTypes& reType, - /*out*/const sal_Unicode*& rpStartPos, /*out*/const sal_Unicode*& rpEndPos ); - - const char** ppListKeyWords; - sal_uInt16 nKeyWordCount; - -public: - SimpleTokenizer_Impl( HighlighterLanguage aLang = HIGHLIGHT_BASIC ); - ~SimpleTokenizer_Impl( void ); - - sal_uInt16 parseLine( sal_uInt32 nLine, const OUString* aSource ); - void getHighlightPortions( sal_uInt32 nParseLine, const OUString& rLine, - /*out*/HighlightPortions& portions ); - void setKeyWords( const char** ppKeyWords, sal_uInt16 nCount ); -}; - - -//*** SyntaxHighlighter-Klasse *** -// Konzept: Der Highlighter wird ueber alle Aenderungen im Source -// informiert (notifyChange) und liefert dem Aufrufer jeweils die -// Information zurueck, welcher Zeilen-Bereich des Source-Codes -// aufgrund dieser Aenderung neu gehighlighted werden muss. -// Dazu merkt sich Highlighter intern fuer jede Zeile, ob dort -// C-Kommentare beginnen oder enden. -class SVT_DLLPUBLIC SyntaxHighlighter -{ - HighlighterLanguage eLanguage; - SimpleTokenizer_Impl* m_pSimpleTokenizer; - char* m_pKeyWords; - sal_uInt16 m_nKeyWordCount; - -// void initializeKeyWords( HighlighterLanguage eLanguage ); - -public: - SyntaxHighlighter( void ); - ~SyntaxHighlighter( void ); - - // HighLighter (neu) initialisieren, die Zeilen-Tabelle wird - // dabei komplett geloescht, d.h. im Abschluss wird von einem - // leeren Source ausgegangen. In notifyChange() kann dann - // nur Zeile 0 angegeben werden. - void initialize( HighlighterLanguage eLanguage_ ); - - const Range notifyChange( sal_uInt32 nLine, sal_Int32 nLineCountDifference, - const OUString* pChangedLines, sal_uInt32 nArrayLength); - - void getHighlightPortions( sal_uInt32 nLine, const OUString& rLine, - HighlightPortions& pPortions ); - - HighlighterLanguage GetLanguage() { return eLanguage;} -}; -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |