summaryrefslogtreecommitdiff
path: root/svtools/inc
diff options
context:
space:
mode:
authorAndras Timar <atimar@suse.com>2013-02-15 13:02:10 +0100
committerAndras Timar <atimar@suse.com>2013-02-16 12:55:03 +0100
commitc16e9f4ed97f65357e9986f46ad88ee9f2237997 (patch)
tree9da5c0056d4aad772a72d57f7bbf07d24ec2478a /svtools/inc
parentc4aa2c4d7eb1cef0f3b172d1dbc4e51e9b379b80 (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.hxx2
-rw-r--r--svtools/inc/svtools/svmedit.hxx3
-rw-r--r--svtools/inc/svtools/syntaxhighlight.hxx177
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: */