123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- // Scintilla source code edit control
- /** @file LexerBase.cxx
- ** A simple lexer with no state.
- **/
- // Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org>
- // The License.txt file describes the conditions under which this software may be distributed.
- #include <stdlib.h>
- #include <string.h>
- #include <stdio.h>
- #include <stdarg.h>
- #include <assert.h>
- #include <ctype.h>
- #include "ILexer.h"
- #include "Scintilla.h"
- #include "SciLexer.h"
- #include "PropSetSimple.h"
- #include "WordList.h"
- #include "LexAccessor.h"
- #include "Accessor.h"
- #include "LexerModule.h"
- #include "LexerBase.h"
- #ifdef SCI_NAMESPACE
- using namespace Scintilla;
- #endif
- LexerBase::LexerBase() {
- for (int wl = 0; wl < numWordLists; wl++)
- keyWordLists[wl] = new WordList;
- keyWordLists[numWordLists] = 0;
- }
- LexerBase::~LexerBase() {
- for (int wl = 0; wl < numWordLists; wl++) {
- delete keyWordLists[wl];
- keyWordLists[wl] = 0;
- }
- keyWordLists[numWordLists] = 0;
- }
- void SCI_METHOD LexerBase::Release() {
- delete this;
- }
- int SCI_METHOD LexerBase::Version() const {
- return lvOriginal;
- }
- const char * SCI_METHOD LexerBase::PropertyNames() {
- return "";
- }
- int SCI_METHOD LexerBase::PropertyType(const char *) {
- return SC_TYPE_BOOLEAN;
- }
- const char * SCI_METHOD LexerBase::DescribeProperty(const char *) {
- return "";
- }
- Sci_Position SCI_METHOD LexerBase::PropertySet(const char *key, const char *val) {
- const char *valOld = props.Get(key);
- if (strcmp(val, valOld) != 0) {
- props.Set(key, val);
- return 0;
- } else {
- return -1;
- }
- }
- const char * SCI_METHOD LexerBase::DescribeWordListSets() {
- return "";
- }
- Sci_Position SCI_METHOD LexerBase::WordListSet(int n, const char *wl) {
- if (n < numWordLists) {
- WordList wlNew;
- wlNew.Set(wl);
- if (*keyWordLists[n] != wlNew) {
- keyWordLists[n]->Set(wl);
- return 0;
- }
- }
- return -1;
- }
- void * SCI_METHOD LexerBase::PrivateCall(int, void *) {
- return 0;
- }
|