pkg://jext-3.2-0.pre4.1jpp.src.rpm:1008008/jext-sources-3.2pre4.tar.gz
info downloads
jextSrc-3.2pre4/ 40755 0 0 0 7763374400 10617 5 ustar 0 0 jextSrc-3.2pre4/src/ 40755 0 0 0 7764671252 11414 5 ustar 0 0 jextSrc-3.2pre4/src/lib/ 40755 0 0 0 7763374343 12162 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/ 40755 0 0 0 7763374343 12751 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/gjt/ 40755 0 0 0 7763374351 13534 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/gjt/sp/ 40755 0 0 0 7763374353 14160 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/gjt/sp/jedit/ 40755 0 0 0 7763374375 15263 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/gjt/sp/jedit/syntax/ 40755 0 0 0 7763374376 16612 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/gjt/sp/jedit/textarea/ 40755 0 0 0 7763374376 17101 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/gjt/sp/jedit/gui/ 40755 0 0 0 7763374353 16043 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/ 40755 0 0 0 7764671252 13723 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/images/ 40755 0 0 0 7763374376 15176 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/dawn/ 40755 0 0 0 7763374377 14663 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/dawn/string/ 40755 0 0 0 7763374376 16170 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/dawn/math/ 40755 0 0 0 7763374375 15612 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/dawn/javaccess/ 40755 0 0 0 7763374373 16621 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/dawn/util/ 40755 0 0 0 7763374376 15637 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/dawn/test/ 40755 0 0 0 7763374371 15634 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/dawn/stack/ 40755 0 0 0 7763374376 15767 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/dawn/array/ 40755 0 0 0 7763374376 16000 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/dawn/naming/ 40755 0 0 0 7763374376 16133 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/dawn/io/ 40755 0 0 0 7763374375 15270 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/dawn/err/ 40755 0 0 0 7763374373 15447 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/dawn/loop/ 40755 0 0 0 7763374360 15624 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/scripting/ 40755 0 0 0 7763374371 15726 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/scripting/dawn/ 40755 0 0 0 7763374373 16661 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/scripting/dawn/functions/ 40755 0 0 0 7763374376 20674 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/scripting/python/ 40755 0 0 0 7763374371 17247 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/xinsert/ 40755 0 0 0 7763374361 15417 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/options/ 40755 0 0 0 7763374375 15423 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/console/ 40755 0 0 0 7763374375 15372 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/console/commands/ 40755 0 0 0 7763374375 17173 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/protocol/ 40755 0 0 0 7763374350 15562 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/protocol/jextresource/ 40755 0 0 0 7763374355 20311 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/misc/ 40755 0 0 0 7763374374 14662 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/actions/ 40755 0 0 0 7763374374 15367 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/textarea/ 40755 0 0 0 7763374374 15544 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/oneclick/ 40755 0 0 0 7763374350 15510 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/project/ 40755 0 0 0 7763374370 15371 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/print/ 40755 0 0 0 7763374367 15065 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/search/ 40755 0 0 0 7763374374 15174 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/toolbar/ 40755 0 0 0 7763374370 15365 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/xml/ 40755 0 0 0 7763374374 14527 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/gui/ 40755 0 0 0 7764671252 14507 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/event/ 40755 0 0 0 7763374362 15045 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/jext/menus/ 40755 0 0 0 7763374375 15057 5 ustar 0 0 jextSrc-3.2pre4/src/lib/gnu/ 40755 0 0 0 7763374342 12752 5 ustar 0 0 jextSrc-3.2pre4/src/lib/gnu/regexp/ 40755 0 0 0 7763374375 14252 5 ustar 0 0 jextSrc-3.2pre4/src/lib/com/ 40755 0 0 0 7763374344 12741 5 ustar 0 0 jextSrc-3.2pre4/src/lib/com/microstar/ 40755 0 0 0 7763374345 14745 5 ustar 0 0 jextSrc-3.2pre4/src/lib/com/microstar/xml/ 40755 0 0 0 7763374377 15552 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/ 40755 0 0 0 7763374365 13101 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/Java/ 40755 0 0 0 7763374377 13765 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/KLNF/ 40755 0 0 0 7763374373 13632 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/KLNF/com/ 40755 0 0 0 7763374351 14404 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/KLNF/com/incors/ 40755 0 0 0 7763374344 15703 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/KLNF/com/incors/plaf/ 40755 0 0 0 7763374377 16633 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/KLNF/com/incors/plaf/kunststoff/ 40755 0 0 0 7763374376 21040 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/KLNF/com/incors/plaf/kunststoff/icons/ 40755 0 0 0 7763374375 22152 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/KLNF/com/incors/plaf/kunststoff/themes/ 40755 0 0 0 7763374374 22323 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/PyBrowse/ 40755 0 0 0 7763374375 14654 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/check/ 40755 0 0 0 7763374376 14160 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/FindAll/ 40755 0 0 0 7763374375 14413 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/HTML/ 40755 0 0 0 7763374376 13647 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/FunnyBrackets/ 40755 0 0 0 7763374373 15656 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/FunnyBrackets/src/ 40755 0 0 0 7763374364 16445 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/Php/ 40755 0 0 0 7763374351 13623 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/Php/tpl/ 40755 0 0 0 7763374374 14427 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/Php/src/ 40755 0 0 0 7763374374 14417 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/Php/trans/ 40755 0 0 0 7763374353 14754 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/Php/trans/Français/ 40755 0 0 0 7763374363 16707 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/KeystrokeRecorder/ 40755 0 0 0 7763374374 16547 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/PHPBrowse/ 40755 0 0 0 7763374370 14706 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/WheelMouse/ 40755 0 0 0 7763374376 15160 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/WheelMouse/Native/ 40755 0 0 0 7763374365 16404 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/HyperTyper/ 40755 0 0 0 7763374376 15216 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/XMLBrowse/ 40755 0 0 0 7763374366 14724 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/FindInFiles/ 40755 0 0 0 7763374372 15231 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/FindInFiles/src/ 40755 0 0 0 7763374374 16022 5 ustar 0 0 jextSrc-3.2pre4/src/plugins/diffs/ 40755 0 0 0 7763374371 14171 5 ustar 0 0 jextSrc-3.2pre4/src/docs/ 40755 0 0 0 7763374365 12350 5 ustar 0 0 jextSrc-3.2pre4/src/docs/xml-en/ 40755 0 0 0 7763374374 13550 5 ustar 0 0 jextSrc-3.2pre4/src/docs/dtd/ 40755 0 0 0 7763374375 13124 5 ustar 0 0 jextSrc-3.2pre4/src/docs/xml-fr/ 40755 0 0 0 7763374376 13557 5 ustar 0 0 jextSrc-3.2pre4/src/docs/bin/ 40755 0 0 0 7763374366 13121 5 ustar 0 0 jextSrc-3.2pre4/src/docs/index/ 40755 0 0 0 7763374374 13457 5 ustar 0 0 jextSrc-3.2pre4/src/updating/ 40755 0 0 0 7763374375 13234 5 ustar 0 0 jextSrc-3.2pre4/src/jextlauncher/ 40755 0 0 0 7763374377 14117 5 ustar 0 0 jextSrc-3.2pre4/extplugins/ 40755 0 0 0 7763374377 13036 5 ustar 0 0 jextSrc-3.2pre4/extplugins/Admin/ 40755 0 0 0 7763374377 14066 5 ustar 0 0 jextSrc-3.2pre4/src/lib/org/gjt/sp/jedit/syntax/PatchTokenMarker.java 100644 0 0 2116 7763374340 22743 0 ustar 0 0 /*
* PatchTokenMarker.java - DIFF patch token marker
* Copyright (C) 1999 Slava Pestov
*
* You may use and modify this package for any purpose. Redistribution is
* permitted, in both source and binary form, provided that this notice
* remains intact in all source distributions of this package.
*/
package org.gjt.sp.jedit.syntax;
import javax.swing.text.Segment;
/**
* Patch/diff token marker.
*
* @author Slava Pestov
* @version $Id: PatchTokenMarker.java,v 1.1 2002/12/27 18:50:37 blaisorblade Exp $
*/
public class PatchTokenMarker extends TokenMarker
{
public byte markTokensImpl(byte token, Segment line, int lineIndex)
{
if(line.count == 0)
return Token.NULL;
switch(line.array[line.offset])
{
case '+': case '>':
addToken(line.count,Token.KEYWORD1);
break;
case '-': case '<':
addToken(line.count,Token.KEYWORD2);
break;
case '@': case '*':
addToken(line.count,Token.KEYWORD3);
break;
default:
addToken(line.count,Token.NULL);
break;
}
return Token.NULL;
}
public boolean supportsMultilineTokens()
{
return false;
}
}
jextSrc-3.2pre4/src/lib/org/gjt/sp/jedit/syntax/TokenMarkerWithAddToken.java 100644 0 0 1711 7763374340 24231 0 ustar 0 0 /*
* TokenMarkerWithAddToken.java
* Copyright (c) 1999 André Kaplan
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
package org.gjt.sp.jedit.syntax;
/**
* @author Andre Kaplan
* @version 0.5
*/
public interface TokenMarkerWithAddToken
{
public void addToken(int length, byte id);
}
jextSrc-3.2pre4/src/lib/org/gjt/sp/jedit/syntax/TokenMarkerContext.java 100644 0 0 14524 7763374341 23357 0 ustar 0 0 /*
* TokenMarkerContext.java
* Copyright (c) 1999 André Kaplan
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
package org.gjt.sp.jedit.syntax;
import javax.swing.text.Segment;
import gnu.regexp.*;
/**
* This class contains the Context of a Token Marker that can be passed along
* nested Token Markers through a method like
* markTokensImpl(MyToken token, TokenMarkerContext ctx) : MyToken
* where MyToken represents the token state at the end of the marked line.
*
* It contains useful infos such as last offset and last keyword and the pos in the marked line
* It also provides utility functions that are often used in TokenMarkers such as
* addTokenToPos, addTokenToEnd
* doKeywordToPos, doKeywordToEnd
*
* @author Andre Kaplan
* @version 0.6
*/
public class TokenMarkerContext
{
public TokenMarkerContext(Segment line,
int lineIndex,
TokenMarkerWithAddToken marker,
TokenMarker.LineInfo[] lineInfo)
{
this.line = line;
this.lineIndex = lineIndex;
this.marker = marker;
this.array = line.array;
this.offset = line.offset;
this.lastOffset = line.offset;
this.lastKeyword = line.offset;
this.length = line.offset + line.count;
this.pos = line.offset;
if (lineInfo != null)
{
this.currLineInfo = lineInfo[lineIndex];
this.prevLineInfo = ((lineIndex == 0) ? null : lineInfo[lineIndex - 1]);
}
}
public TokenMarkerContext(Segment line,
int lineIndex,
TokenMarkerWithAddToken marker)
{
this(line, lineIndex, marker, null);
}
public boolean atFirst()
{
return (this.pos == line.offset);
}
public boolean hasMoreChars()
{
return (this.pos < this.length);
}
public int remainingChars()
{
return ((this.length - 1) - this.pos);
}
public char getChar()
{
return this.array[this.pos];
}
public char getChar(int inc)
{
return this.array[this.pos + inc];
}
public char lastChar()
{
return this.array[this.length - 1];
}
public void addToken(int length, byte id)
{
this.marker.addToken(length, id);
}
/**
* Adds a token to the position specified (position exclusive)
* The character at pos index is excluded
*/
public void addTokenToPos(byte id)
{
if (this.pos > this.lastOffset)
{
this.addToken(this.pos - this.lastOffset, id);
this.lastOffset = this.lastKeyword = this.pos;
}
}
public void addTokenToPos(int pos, byte id)
{
if (pos > this.lastOffset)
{
this.addToken(pos - this.lastOffset, id);
this.lastOffset = this.lastKeyword = pos;
}
}
// *************
// addTokenToEnd
// *************
public void addTokenToEnd(byte id)
{
if (this.length > this.lastOffset)
{
this.addToken(this.length - this.lastOffset, id);
this.pos = this.lastOffset = this.lastKeyword = this.length;
}
}
// **************
// doKeywordToPos
// **************
public byte doKeywordToPos(int pos, KeywordMap keywords)
{
int len = pos - this.lastKeyword;
byte id = keywords.lookup(this.line, this.lastKeyword, len);
if (id != Token.NULL)
{
this.addTokenToPos(this.lastKeyword, Token.NULL);
this.addTokenToPos(pos, id);
}
this.lastKeyword = pos + 1;
return id;
}
// **************
// doKeywordToPos
// **************
public byte doKeywordToPos(KeywordMap keywords)
{
int len = this.pos - this.lastKeyword;
byte id = keywords.lookup(this.line, this.lastKeyword, len);
if (id != Token.NULL)
{
this.addTokenToPos(this.lastKeyword, Token.NULL);
this.addTokenToPos(this.pos, id);
}
this.lastKeyword = this.pos + 1;
return id;
}
// **************
// doKeywordToEnd
// **************
public byte doKeywordToEnd(KeywordMap keywords)
{
return this.doKeywordToPos(this.length, keywords);
}
public boolean regionMatches(boolean ignoreCase, String match)
{
return SyntaxUtilities.regionMatches(ignoreCase, this.line, this.pos, match);
}
public REMatch RERegionMatches(RE match)
{
return RERegionMatches(this.line, this.pos, match);
}
/**
* Checks if a subregion of a <code>Segment</code> matches a regular expression.
* The match-beginning operator (^) in the regular expression matches segment at position offset
* This function is intended to be part of SyntaxUtilities
* @param text The segment
* @param offset The offset into the segment
* @param match The regular expression to match
*/
private static REMatch RERegionMatches(Segment text, int offset, RE match)
{
try
{
String s = String.copyValueOf(text.array, offset, text.count - (offset - text.offset));
return match.getMatch(s, 0, RE.REG_ANCHORINDEX);
// BUG: The following may throw exceptions
// I guess it's a thread safety issue since text.array may point to nowhere before getMatch has completed
// If anyone knows about it...
// char[] textArray = text.array;
// return match.getMatch(textArray, offset, RE.REG_ANCHORINDEX);
}
catch (IllegalArgumentException iae)
{
return null;
}
}
public String toString() {
String res =
"Line: " + (this.lineIndex + 1) /* Line numbers start from 1*/
+ ", pos:" + (this.pos - this.offset) + "\n";
res += new String(line.array, line.offset, line.count);
res += "\n";
int spacerLen = this.pos - this.offset;
StringBuffer spacer = new StringBuffer(spacerLen + 2);
for (int i = 0; i < spacerLen; i++) {
spacer.append('.');
}
spacer.append('^');
spacer.append('\n');
res += spacer.toString();
return res;
}
public Segment line;
public int lineIndex;
public char[] array;
public int offset;
public int lastOffset;
public int lastKeyword;
public int length;
public int pos;
private TokenMarkerWithAddToken marker;
public TokenMarker.LineInfo prevLineInfo;
public TokenMarker.LineInfo currLineInfo;
}
jextSrc-3.2pre4/src/lib/org/gjt/sp/jedit/syntax/SyntaxDocument.java 100644 0 0 13717 7763374342 22561 0 ustar 0 0 /*
* SyntaxDocument.java - Document that can be tokenized
* Copyright (C) 1999 Slava Pestov
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.gjt.sp.jedit.syntax;
import javax.swing.event.*;
import javax.swing.text.*;
import javax.swing.undo.UndoableEdit;
/**
* A document implementation that can be tokenized by the syntax highlighting
* system.
*
* @author Slava Pestov
* @version $Id: SyntaxDocument.java,v 1.1.1.1 2001/08/20 22:31:42 gfx Exp $
*/
public class SyntaxDocument extends PlainDocument
{
/**
* Returns the token marker that is to be used to split lines
* of this document up into tokens. May return null if this
* document is not to be colorized.
*/
public TokenMarker getTokenMarker()
{
return tokenMarker;
}
/**
* Sets the token marker that is to be used to split lines of
* this document up into tokens. May throw an exception if
* this is not supported for this type of document.
* @param tm The new token marker
*/
public void setTokenMarker(TokenMarker tm)
{
tokenMarker = tm;
if(tm == null)
return;
tokenMarker.insertLines(0,getDefaultRootElement()
.getElementCount());
tokenizeLines();
}
/**
* Reparses the document, by passing all lines to the token
* marker. This should be called after the document is first
* loaded.
*/
public void tokenizeLines()
{
tokenizeLines(0,getDefaultRootElement().getElementCount());
}
/**
* Reparses the document, by passing the specified lines to the
* token marker. This should be called after a large quantity of
* text is first inserted.
* @param start The first line to parse
* @param len The number of lines, after the first one to parse
*/
public void tokenizeLines(int start, int len)
{
if(tokenMarker == null || !tokenMarker.supportsMultilineTokens())
return;
Segment lineSegment = new Segment();
Element map = getDefaultRootElement();
len += start;
try
{
for(int i = start; i < len; i++)
{
Element lineElement = map.getElement(i);
int lineStart = lineElement.getStartOffset();
getText(lineStart,lineElement.getEndOffset()
- lineStart - 1,lineSegment);
tokenMarker.markTokens(lineSegment,i);
}
}
catch(BadLocationException bl)
{
bl.printStackTrace();
}
}
/**
* Starts a compound edit that can be undone in one operation.
* Subclasses that implement undo should override this method;
* this class has no undo functionality so this method is
* empty.
*/
public void beginCompoundEdit() {}
/**
* Ends a compound edit that can be undone in one operation.
* Subclasses that implement undo should override this method;
* this class has no undo functionality so this method is
* empty.
*/
public void endCompoundEdit() {}
/**
* Adds an undoable edit to this document's undo list. The edit
* should be ignored if something is currently being undone.
* @param edit The undoable edit
*
* @since jEdit 2.2pre1
*/
public void addUndoableEdit(UndoableEdit edit) {}
// protected members
protected TokenMarker tokenMarker;
/**
* We overwrite this method to update the token marker
* state immediately so that any event listeners get a
* consistent token marker.
*/
protected void fireInsertUpdate(DocumentEvent evt)
{
if(tokenMarker != null)
{
DocumentEvent.ElementChange ch = evt.getChange(
getDefaultRootElement());
if(ch != null)
{
tokenMarker.insertLines(ch.getIndex() + 1,
ch.getChildrenAdded().length -
ch.getChildrenRemoved().length);
}
}
super.fireInsertUpdate(evt);
}
/**
* We overwrite this method to update the token marker
* state immediately so that any event listeners get a
* consistent token marker.
*/
protected void fireRemoveUpdate(DocumentEvent evt)
{
if(tokenMarker != null)
{
DocumentEvent.ElementChange ch = evt.getChange(
getDefaultRootElement());
if(ch != null)
{
tokenMarker.deleteLines(ch.getIndex() + 1,
ch.getChildrenRemoved().length -
ch.getChildrenAdded().length);
}
}
super.fireRemoveUpdate(evt);
}
}
/*
* ChangeLog:
* $Log: SyntaxDocument.java,v $
* Revision 1.1.1.1 2001/08/20 22:31:42 gfx
* Jext 3.0pre5
*
* Revision 1.1.1.1 2001/04/11 14:22:35 gfx
*
* Jext 2.11: GUI customization, bug fixes
*
* Revision 1.14 1999/12/13 03:40:30 sp
* Bug fixes, syntax is now mostly GPL'd
*
* Revision 1.13 1999/12/10 03:22:47 sp
* Bug fixes, old loading code is now used again
*
* Revision 1.12 1999/12/07 08:16:55 sp
* Reload bug nailed to the wall
*
* Revision 1.11 1999/11/07 06:51:43 sp
* Check box menu items supported
*
* Revision 1.10 1999/10/24 02:06:41 sp
* Miscallaneous pre1 stuff
*
* Revision 1.9 1999/09/30 12:21:05 sp
* No net access for a month... so here's one big jEdit 2.1pre1
*
* Revision 1.8 1999/07/05 04:38:39 sp
* Massive batch of changes... bug fixes, also new text component is in place.
* Have fun
*
* Revision 1.7 1999/06/22 06:14:39 sp
* RMI updates, text area updates, flag to disable geometry saving
*
* Revision 1.6 1999/06/07 06:36:32 sp
* Syntax `styling' (bold/italic tokens) added,
* plugin options dialog for plugin option panes
*
* Revision 1.5 1999/06/05 00:22:58 sp
* LGPL'd syntax package
*
* Revision 1.4 1999/05/02 00:07:21 sp
* Syntax system tweaks, console bugfix for Swing 1.1.1
*
* Revision 1.3 1999/04/19 05:38:20 sp
* Syntax API changes
*
*/
jextSrc-3.2pre4/src/lib/org/gjt/sp/jedit/syntax/VHDLTokenMarker.java 100644 0 0 22454 7763374343 22473 0 ustar 0 0 /*
* VHDLTokenMarker.java - VHDL token marker
* Copyright (C) 2000 Bogdan Mitu
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.gjt.sp.jedit.syntax;
import javax.swing.text.Segment;
/**
* VHDL token marker.
*
* @author Bogdan Mitu
* @version $Id: VHDLTokenMarker.java,v 1.1.1.1 2001/08/20 22:31:49 gfx Exp $
*/
public class VHDLTokenMarker extends TokenMarker
{
public VHDLTokenMarker()
{
this.keywords = getKeywords();
}
public byte markTokensImpl(byte token, Segment line, int lineIndex)
{
char[] array = line.array;
int offset = line.offset;
lastOffset = offset;
lastKeyword = offset;
int length = line.count + offset;
boolean backslash = false;
loop: for(int i = offset; i < length; i++)
{
int i1 = (i+1);
char c = array[i];
if(c == '\\')
{
backslash = !backslash;
continue;
}
switch(token)
{
case Token.NULL:
switch(c)
{
case '#':
if(backslash)
backslash = false;
break;
case '"':
doKeyword(line,i,c);
if(backslash)
backslash = false;
else
{
addToken(i - lastOffset,token);
token = Token.LITERAL1;
lastOffset = lastKeyword = i;
}
break;
case ':':
if(lastKeyword == offset)
{
if(doKeyword(line,i,c))
break;
backslash = false;
addToken(i1 - lastOffset,Token.LABEL);
lastOffset = lastKeyword = i1;
}
else if(doKeyword(line,i,c))
break;
break;
case '-':
backslash = false;
doKeyword(line,i,c);
if(length - i > 1)
{
switch(array[i1])
{
case '*':
addToken(i - lastOffset,token);
lastOffset = lastKeyword = i;
token = Token.COMMENT1;
break;
case '-':
addToken(i - lastOffset,token);
addToken(length - i,Token.COMMENT1);
lastOffset = lastKeyword = length;
break loop;
}
}
break;
default:
backslash = false;
if(!Character.isLetterOrDigit(c)
&& c != '_')
doKeyword(line,i,c);
break;
}
break;
case Token.COMMENT1:
case Token.COMMENT2:
backslash = false;
if(c == '*' && length - i > 1)
{
if(array[i1] == '/')
{
i++;
addToken((i+1) - lastOffset,token);
token = Token.NULL;
lastOffset = lastKeyword = i+1;
}
}
break;
case Token.LITERAL1:
if(backslash)
backslash = false;
else if(c == '"')
{
addToken(i1 - lastOffset,token);
token = Token.NULL;
lastOffset = lastKeyword = i1;
}
break;
case Token.LITERAL2:
if(backslash)
backslash = false;
else if(c == '\'')
{
addToken(i1 - lastOffset,Token.LITERAL1);
token = Token.NULL;
lastOffset = lastKeyword = i1;
}
break;
default:
throw new InternalError("Invalid state: "
+ token);
}
}
if(token == Token.NULL)
doKeyword(line,length,'\0');
switch(token)
{
case Token.LITERAL1:
case Token.LITERAL2:
addToken(length - lastOffset,Token.INVALID);
token = Token.NULL;
break;
case Token.KEYWORD2:
addToken(length - lastOffset,token);
if(!backslash)
token = Token.NULL;
default:
addToken(length - lastOffset,token);
break;
}
return token;
}
public static KeywordMap getKeywords()
{
if(vhdlKeywords == null)
{
vhdlKeywords = new KeywordMap( true);
vhdlKeywords.add("char",Token.KEYWORD3);
vhdlKeywords.add("double",Token.KEYWORD3);
vhdlKeywords.add("enum",Token.KEYWORD3);
vhdlKeywords.add("real",Token.KEYWORD3);
vhdlKeywords.add("integer",Token.KEYWORD3);
vhdlKeywords.add("natural",Token.KEYWORD3);
vhdlKeywords.add("text",Token.KEYWORD3);
vhdlKeywords.add("boolean",Token.KEYWORD3);
vhdlKeywords.add("line",Token.KEYWORD3);
vhdlKeywords.add("string",Token.KEYWORD3);
vhdlKeywords.add("bit",Token.KEYWORD3);
vhdlKeywords.add("bit_vector",Token.KEYWORD3);
vhdlKeywords.add("std_logic",Token.KEYWORD3);
vhdlKeywords.add("std_logic_vector",Token.KEYWORD3);
vhdlKeywords.add("if",Token.KEYWORD1);
vhdlKeywords.add("then",Token.KEYWORD1);
vhdlKeywords.add("elsif",Token.KEYWORD1);
vhdlKeywords.add("else",Token.KEYWORD1);
vhdlKeywords.add("begin",Token.KEYWORD1);
vhdlKeywords.add("end",Token.KEYWORD1);
vhdlKeywords.add("for",Token.KEYWORD1);
vhdlKeywords.add("while",Token.KEYWORD1);
vhdlKeywords.add("loop",Token.KEYWORD1);
vhdlKeywords.add("when",Token.KEYWORD1);
vhdlKeywords.add("after",Token.KEYWORD1);
vhdlKeywords.add("wait",Token.KEYWORD1);
vhdlKeywords.add("function",Token.KEYWORD1);
vhdlKeywords.add("procedure",Token.KEYWORD1);
vhdlKeywords.add("case",Token.KEYWORD1);
vhdlKeywords.add("default",Token.KEYWORD1);
vhdlKeywords.add("transport",Token.KEYWORD1);
vhdlKeywords.add("and",Token.KEYWORD1);
vhdlKeywords.add("or",Token.KEYWORD1);
vhdlKeywords.add("not",Token.KEYWORD1);
vhdlKeywords.add("xor",Token.KEYWORD1);
vhdlKeywords.add("entity",Token.KEYWORD1);
vhdlKeywords.add("architecture",Token.KEYWORD1);
vhdlKeywords.add("port",Token.KEYWORD1);
vhdlKeywords.add("in",Token.KEYWORD1);
vhdlKeywords.add("out",Token.KEYWORD1);
vhdlKeywords.add("inout",Token.KEYWORD1);
vhdlKeywords.add("map",Token.KEYWORD1);
vhdlKeywords.add("component",Token.KEYWORD1);
vhdlKeywords.add("of",Token.KEYWORD1);
vhdlKeywords.add("on",Token.KEYWORD1);
vhdlKeywords.add("is",Token.KEYWORD1);
vhdlKeywords.add("process",Token.KEYWORD1);
vhdlKeywords.add("return",Token.KEYWORD1);
vhdlKeywords.add("to",Token.KEYWORD1);
vhdlKeywords.add("downto",Token.KEYWORD1);
vhdlKeywords.add("alias",Token.KEYWORD1);
vhdlKeywords.add("variable",Token.KEYWORD1);
vhdlKeywords.add("signal",Token.KEYWORD1);
vhdlKeywords.add("constant",Token.KEYWORD1);
vhdlKeywords.add("generic",Token.KEYWORD1);
vhdlKeywords.add("range",Token.KEYWORD1);
vhdlKeywords.add("event",Token.KEYWORD1);
vhdlKeywords.add("file",Token.KEYWORD1);
vhdlKeywords.add("time",Token.KEYWORD1);
vhdlKeywords.add("all",Token.KEYWORD1);
vhdlKeywords.add("package",Token.KEYWORD1);
vhdlKeywords.add("use",Token.KEYWORD1);
vhdlKeywords.add("library",Token.KEYWORD1);
vhdlKeywords.add("true",Token.LITERAL2);
vhdlKeywords.add("false",Token.LITERAL2);
vhdlKeywords.add("NULL",Token.LITERAL2);
}
return vhdlKeywords;
}
public static final int AS_IS = 0;
public static final int LOWER_CASE = 1;
public static final int UPPER_CASE = 2;
// private members
private static KeywordMap vhdlKeywords;
private KeywordMap keywords;
private int lastOffset;
private int lastKeyword;
// to be used by a future plugin
private int keywordCase = AS_IS;
private boolean allLowerCase = false;
private boolean doKeyword( Segment line, int i, char c)
{
int i1 = i+1;
int len = i - lastKeyword;
int txtOffset = lastKeyword;
int n = i;
byte id = keywords.lookup(line,lastKeyword,len);
if(id != Token.NULL)
{
if(lastKeyword != lastOffset)
addToken(lastKeyword - lastOffset,Token.NULL);
addToken(len,id);
lastOffset = i;
if( keywordCase == LOWER_CASE || allLowerCase == true )
{
char[] txt = line.array;
for (int j = txtOffset; j < n; j++)
{
txt [j] = Character.toLowerCase( txt [j]);
}
}
else if( keywordCase == UPPER_CASE)
{
char[] txt = line.array;
for (int j = txtOffset; j < n; j++)
{
txt [j] = Character.toUpperCase( txt [j]);
}
}
}
lastKeyword = i1;
return false;
}
// to be used by a future plugin
public void setKeywordCase( int c)
{
keywordCase = c;
}
// to be used by a future plugin
public int getKeywordCase()
{
return keywordCase;
}
// to be used by a future plugin
public void setAllLowerCase( boolean b)
{
allLowerCase = b;
}
// to be used by a future plugin
public boolean getAllLowerCase()
{
return allLowerCase;
}
}
// End of VHDLTokenMarker.java
jextSrc-3.2pre4/src/lib/org/gjt/sp/jedit/syntax/HTMLTokenMarker.java 100644 0 0 30602 7763374343 22474 0 ustar 0 0 /*
* HTMLTokenMarker.java - HTML token marker
* Copyright (C) 1998, 1999 Slava Pestov
* Portions Copyright (C) 2001 by Romain Guy
* (this includes attributes colorizing)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.gjt.sp.jedit.syntax;
import javax.swing.text.Segment;
/**
* HTML token marker.
*
* @author Slava Pestov
* @version $Id: HTMLTokenMarker.java,v 1.3 2001/12/01 18:54:31 gfx Exp $
*/
public class HTMLTokenMarker extends TokenMarker
{
public static final byte JAVASCRIPT = Token.INTERNAL_FIRST;
public static final byte HTML_LITERAL_QUOTE = Token.INTERNAL_FIRST + 1;
public static final byte HTML_LITERAL_NO_QUOTE = Token.INTERNAL_FIRST + 2;
public static final byte INSIDE_TAG = Token.INTERNAL_FIRST + 3;
public HTMLTokenMarker()
{
this(true);
}
public HTMLTokenMarker(boolean js)
{
this.js = js;
keywords = JavaScriptTokenMarker.getKeywords();
}
public byte markTokensImpl(byte token, Segment line, int lineIndex)
{
char[] array = line.array;
int offset = line.offset;
lastOffset = offset;
lastKeyword = offset;
int length = line.count + offset;
boolean backslash = false;
lastWhitespace = offset - 1;
loop:
for (int i = offset; i < length; i++)
{
int i1 = (i + 1);
char c = array[i];
if (c == '\\')
{
backslash = !backslash;
if (token == JAVASCRIPT)
continue;
}
switch (token)
{
case Token.NULL: // HTML text
backslash = false;
switch (c)
{
case '\\':
addToken(i - lastOffset, token);
lastOffset = lastKeyword = i;
token = Token.OPERATOR;
break;
case '<':
addToken(i - lastOffset, token);
lastOffset = lastKeyword = i;
if (SyntaxUtilities.regionMatches(false, line, i1, "!--"))
{
i += 3;
token = Token.COMMENT1;
} else if (js && SyntaxUtilities.regionMatches(true, line, i1, "script")) {
addToken(1, Token.KEYWORD1);
//addToken(6, Token.METHOD);
//lastOffset = lastKeyword = (i += 7);
lastOffset = lastKeyword = i1;
token = Token.METHOD;//JAVASCRIPT;
javascript = true;
} else {
addToken(1, Token.KEYWORD1);
lastOffset = lastKeyword = i1;
token = Token.METHOD;
}
break;
case '&':
addToken(i - lastOffset, token);
lastOffset = lastKeyword = i;
token = Token.KEYWORD2;
break;
}
break;
case Token.OPERATOR:
backslash = false;
if (c != '<')
{
addToken(i1 - lastOffset, token);
lastOffset = lastKeyword = i1;
token = Token.NULL;
}
break;
case Token.METHOD: // Inside a tag
backslash = false;
if (c == '>')
{
addToken(i - lastOffset, token);
addToken(1, Token.KEYWORD1);
lastOffset = lastKeyword = i1;
if (!javascript)
token = Token.NULL;
else
{
javascript = false;
lastWhitespace = i;
token = JAVASCRIPT;
}
} else if (c == ':') {
addToken(i1 - lastOffset, Token.LITERAL2);
lastOffset = lastKeyword = i1;
} else if (c == ' ' || c == '\t') {
addToken(i1 - lastOffset, token);
lastOffset = lastKeyword = i1;
token = INSIDE_TAG;
}
break;
case INSIDE_TAG:
if (c == '>')
{
addToken(i - lastOffset, Token.METHOD);
addToken(1, Token.KEYWORD1);
lastOffset = lastKeyword = i1;
if (!javascript)
token = Token.NULL;
else
{
javascript = false;
token = JAVASCRIPT;
}
} else if (c == '/' || c == '?') {
addToken(1, Token.METHOD);
lastOffset = lastKeyword = i1;
token = Token.METHOD;
} else {//if (c != ' ' && c != '\t') {
addToken(i - lastOffset, Token.NULL);
lastOffset = lastKeyword = i;
token = Token.KEYWORD3;
}
break;
case Token.KEYWORD2: // Inside an entity
backslash = false;
if (c == ';')
{
addToken(i1 - lastOffset, token);
lastOffset = lastKeyword = i1;
token = Token.NULL;
}
break;
case Token.KEYWORD3: // Inside an attribute
if (c == '/' || c == '?')
{
addToken(i - lastOffset, token);
addToken(1, Token.METHOD);
lastOffset = lastKeyword = i1;
//token = INSIDE_TAG;
} else if (c == '=') {
addToken(i - lastOffset, token);
addToken(1, Token.LABEL);
lastOffset = lastKeyword = i1;
if (i1 < array.length && array[i1] == '"')
{
token = HTML_LITERAL_QUOTE;
i++;
} else {
token = HTML_LITERAL_NO_QUOTE;
}
} else if (c == '>') {
addToken(i - lastOffset, token);
addToken(1, Token.KEYWORD1);
lastOffset = lastKeyword = i1;
token = Token.NULL;
} else if (c == ' ' || c == '\t') {
addToken(i1 - lastOffset, token);
lastOffset = lastKeyword = i1;
token = INSIDE_TAG;
}
break;
case HTML_LITERAL_QUOTE:
if (c == '"')
{
addToken(i1 - lastOffset, Token.LITERAL1);
lastOffset = lastKeyword = i1;
token = INSIDE_TAG;
}
break;
case HTML_LITERAL_NO_QUOTE:
if (c == ' ' || c == '\t')
{
addToken(i1 - lastOffset, Token.LITERAL1);
lastOffset = lastKeyword = i1;
token = INSIDE_TAG;
} else if (c == '>') {
addToken(i - lastOffset, Token.LITERAL1);
addToken(1, Token.KEYWORD1);
lastOffset = lastKeyword = i1;
token = Token.NULL;
}
break;
case Token.COMMENT1: // Inside a comment
backslash = false;
if (SyntaxUtilities.regionMatches(false, line, i, "-->"))
{
addToken((i + 3) - lastOffset, token);
lastOffset = lastKeyword = i + 3;
token = Token.NULL;
}
break;
case JAVASCRIPT: // Inside a JavaScript
switch (c)
{
case '<':
backslash = false;
doKeyword(line, i, c);
if (SyntaxUtilities.regionMatches(true, line, i1, "/script>"))
{
addToken(i - lastOffset, Token.NULL);
addToken(1, Token.KEYWORD1);
addToken(7, Token.METHOD);
addToken(1, Token.KEYWORD1);
lastOffset = lastKeyword = (i += 9);
token = Token.NULL;
}
break;
case '(':
if (backslash)
{
doKeyword(line, i, c);
backslash = false;
} else {
if (doKeyword(line, i, c))
break;
addToken(lastWhitespace - lastOffset + 1, Token.NULL);
addToken(i - lastWhitespace - 1, Token.METHOD);
addToken(1, Token.NULL);
token = JAVASCRIPT;
lastOffset = lastKeyword = i1;
lastWhitespace = i;
}
break;
case '"':
if (backslash)
backslash = false;
else
{
doKeyword(line, i, c);
addToken(i - lastOffset, Token.NULL);
lastOffset = lastKeyword = i;
token = Token.LITERAL1;
}
break;
case '\'':
if (backslash)
backslash = false;
else
{
doKeyword(line, i, c);
addToken(i - lastOffset, Token.NULL);
lastOffset = lastKeyword = i;
token = Token.LITERAL2;
}
break;
case '/':
backslash = false;
doKeyword(line, i, c);
if (length - i > 1)
{
addToken(i - lastOffset, Token.NULL);
lastOffset = lastKeyword = i;
if (array[i1] == '/')
{
addToken(length - i, Token.COMMENT2);
lastOffset = lastKeyword = length;
break loop;
} else if (array[i1] == '*') {
token = Token.COMMENT2;
}
}
break;
default:
backslash = false;
if (!Character.isLetterOrDigit(c) && c != '_')
doKeyword(line, i, c);
if (CTokenMarker.METHOD_DELIMITERS.indexOf(c) != -1)
{
lastWhitespace = i;
}
break;
}
break;
case Token.LITERAL1: // JavaScript "..."
if (backslash)
backslash = false;
else if (c == '"')
{
addToken(i1 - lastOffset, Token.LITERAL1);
lastOffset = lastKeyword = i1;
token = JAVASCRIPT;
}
break;
case Token.LITERAL2: // JavaScript '...'
if (backslash)
backslash = false;
else if (c == '\'')
{
addToken(i1 - lastOffset, Token.LITERAL1);
lastOffset = lastKeyword = i1;
token = JAVASCRIPT;
}
break;
case Token.COMMENT2: // Inside a JavaScript comment
backslash = false;
if (c == '*' && length - i > 1 && array[i1] == '/')
{
addToken((i += 2) - lastOffset, Token.COMMENT1);
lastOffset = lastKeyword = i;
token = JAVASCRIPT;
}
break;
default:
throw new InternalError("Invalid state: " + token);
}
}
switch (token)
{
case Token.LITERAL1:
case Token.LITERAL2:
addToken(length - lastOffset, Token.INVALID);
token = JAVASCRIPT;
break;
case Token.KEYWORD2:
addToken(length - lastOffset, Token.INVALID);
token = Token.NULL;
break;
case JAVASCRIPT:
doKeyword(line, length, '\0');
addToken(length - lastOffset, Token.NULL);
break;
case Token.COMMENT2:
addToken(length - lastOffset, Token.COMMENT1);
break;
case INSIDE_TAG:
break;
case HTML_LITERAL_QUOTE: case HTML_LITERAL_NO_QUOTE:
addToken(length - lastOffset, Token.LITERAL1);
break;
default:
addToken(length - lastOffset, token);
break;
}
return token;
}
// private members
private KeywordMap keywords;
private boolean js;
private boolean javascript;
private int lastOffset;
private int lastKeyword;
private int lastWhitespace;
private boolean doKeyword(Segment line, int i, char c)
{
int i1 = i + 1;
int len = i - lastKeyword;
byte id = keywords.lookup(line, lastKeyword, len);
if (id != Token.NULL)
{
if (lastKeyword != lastOffset)
addToken(lastKeyword - lastOffset, Token.NULL);
addToken(len, id);
lastKeyword = i1;
lastOffset = i;
lastWhitespace = i;
return true;
}
lastKeyword = i1;
return false;
}
}
jextSrc-3.2pre4/src/lib/org/gjt/sp/jedit/syntax/PascalTokenMarker.java 100644 0 0 21547 7763374343 23143 0 ustar 0 0 /*
* PascalTokenMarker.java - Pascal token marker
* Copyright (C) 2002 Romain Guy
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.gjt.sp.jedit.syntax;
import javax.swing.text.Segment;
/**
* Pascal token marker.
*/
public class PascalTokenMarker extends TokenMarker
{
public static final String METHOD_DELIMITERS = " \t~!%^*()-+=|\\#/{}[]:;\"'<>,.?";
public PascalTokenMarker()
{
this.keywords = getKeywords();
}
public byte markTokensImpl(byte token, Segment line, int lineIndex)
{
char[] array = line.array;
int offset = line.offset;
lastOffset = offset;
lastKeyword = offset;
lastWhitespace = offset - 1;
int length = line.count + offset;
boolean backslash = false;
loop: for (int i = offset; i < length; i++)
{
int i1 = (i + 1);
char c = array[i];
if (c == '\\')
{
backslash = !backslash;
continue;
}
out: switch(token)
{
case Token.NULL:
switch(c)
{
case '(':
if (backslash)
{
doKeyword(line, i, c);
backslash = false;
} else {
boolean k = doKeyword(line, i, c);
if(length - i > 1)
{
switch(array[i1])
{
case '*':
addToken(i - lastOffset, token);
token = Token.COMMENT2;
lastOffset = lastKeyword = i;
break out;
}
}
if (k)
break;
addToken(lastWhitespace - lastOffset + 1, token);
addToken(i - lastWhitespace - 1, Token.METHOD);
addToken(1, Token.NULL);
token = Token.NULL;
lastOffset = lastKeyword = i1;
lastWhitespace = i;
}
break;
case '{':
backslash = false;
doKeyword(line, i, c);
addToken(i - lastOffset, token);
token = Token.COMMENT1;
lastOffset = lastKeyword = i1;
break;
case '\'':
doKeyword(line, i, c);
if(backslash)
backslash = false;
else
{
addToken(i - lastOffset, token);
token = Token.LITERAL1;
lastOffset = lastKeyword = i;
}
break;
default:
backslash = false;
if (!Character.isLetterOrDigit(c) && c != '_' && c != '{' && c != '}')
doKeyword(line, i, c);
if (METHOD_DELIMITERS.indexOf(c) != -1)
{
lastWhitespace = i;
}
break;
}
break;
case Token.COMMENT1:
backslash = false;
if (c == '}')
{
addToken((i + 1) - lastOffset, token);
token = Token.NULL;
lastOffset = lastKeyword = i;
lastWhitespace = i;
}
break;
case Token.COMMENT2:
backslash = false;
if (c == '*' && length - i > 1)
{
if (array[i1] == ')')
{
i++;
addToken((i + 1) - lastOffset, token);
token = Token.NULL;
lastOffset = lastKeyword = i + 1;
lastWhitespace = i;
}
}
break;
case Token.LITERAL1:
if (backslash)
backslash = false;
else if (c == '\'')
{
addToken(i1 - lastOffset, token);
token = Token.NULL;
lastOffset = lastKeyword = i1;
lastWhitespace = i;
}
break;
default:
throw new InternalError("Invalid state: " + token);
}
}
if (token == Token.NULL)
doKeyword(line, length, '\0');
switch(token)
{
case Token.LITERAL1:
addToken(length - lastOffset, Token.INVALID);
token = Token.NULL;
break;
default:
addToken(length - lastOffset, token);
break;
}
return token;
}
public static KeywordMap getKeywords()
{
if (pascalKeywords == null)
{
pascalKeywords = new KeywordMap(false);
pascalKeywords.add("absolute", Token.KEYWORD1);
pascalKeywords.add("and", Token.OPERATOR);
pascalKeywords.add("array", Token.KEYWORD3);
pascalKeywords.add("asm", Token.KEYWORD1);
pascalKeywords.add("begin", Token.KEYWORD1);
pascalKeywords.add("case", Token.KEYWORD1);
pascalKeywords.add("const", Token.KEYWORD1);
pascalKeywords.add("constructor", Token.KEYWORD1);
pascalKeywords.add("destructor", Token.KEYWORD1);
pascalKeywords.add("div", Token.OPERATOR);
pascalKeywords.add("do", Token.KEYWORD1);
pascalKeywords.add("downto", Token.KEYWORD1);
pascalKeywords.add("else", Token.KEYWORD1);
pascalKeywords.add("end", Token.KEYWORD1);
pascalKeywords.add("external", Token.KEYWORD1);
pascalKeywords.add("file", Token.KEYWORD1);
pascalKeywords.add("for", Token.KEYWORD1);
pascalKeywords.add("forward", Token.KEYWORD1);
pascalKeywords.add("function", Token.KEYWORD1);
pascalKeywords.add("goto", Token.KEYWORD1);
pascalKeywords.add("if", Token.KEYWORD1);
pascalKeywords.add("implementation", Token.KEYWORD2);
pascalKeywords.add("in", Token.KEYWORD1);
pascalKeywords.add("inherited", Token.KEYWORD1);
pascalKeywords.add("inline", Token.KEYWORD1);
pascalKeywords.add("interface", Token.KEYWORD1);
pascalKeywords.add("interrupt", Token.KEYWORD1);
pascalKeywords.add("label", Token.KEYWORD2);
pascalKeywords.add("library", Token.KEYWORD2);
pascalKeywords.add("mod", Token.OPERATOR);
pascalKeywords.add("nil", Token.LABEL);
pascalKeywords.add("not", Token.OPERATOR);
pascalKeywords.add("object", Token.KEYWORD3);
pascalKeywords.add("of", Token.KEYWORD1);
pascalKeywords.add("on", Token.KEYWORD1);
pascalKeywords.add("packed", Token.KEYWORD1);
pascalKeywords.add("private", Token.KEYWORD1);
pascalKeywords.add("procedure", Token.KEYWORD1);
pascalKeywords.add("program", Token.KEYWORD1);
pascalKeywords.add("public", Token.KEYWORD1);
pascalKeywords.add("record", Token.KEYWORD3);
pascalKeywords.add("repeat", Token.KEYWORD1);
pascalKeywords.add("set", Token.KEYWORD3);
pascalKeywords.add("shl", Token.KEYWORD1);
pascalKeywords.add("shr", Token.KEYWORD1);
pascalKeywords.add("string", Token.KEYWORD3);
pascalKeywords.add("then", Token.KEYWORD1);
pascalKeywords.add("to", Token.KEYWORD1);
pascalKeywords.add("type", Token.KEYWORD1);
pascalKeywords.add("unit", Token.KEYWORD1);
pascalKeywords.add("until", Token.KEYWORD1);
pascalKeywords.add("uses", Token.KEYWORD2);
pascalKeywords.add("var", Token.KEYWORD1);
pascalKeywords.add("virtual", Token.KEYWORD1);
pascalKeywords.add("while", Token.KEYWORD1);
pascalKeywords.add("with", Token.KEYWORD1);
pascalKeywords.add("xor", Token.OPERATOR);
pascalKeywords.add("true", Token.LABEL);
pascalKeywords.add("false", Token.LABEL);
pascalKeywords.add("maxint", Token.LABEL);
pascalKeywords.add("maxlongint", Token.LABEL);
pascalKeywords.add("boolean", Token.KEYWORD3);
pascalKeywords.add("byte", Token.KEYWORD3);
pascalKeywords.add("char", Token.KEYWORD3);
pascalKeywords.add("extended", Token.KEYWORD3);
pascalKeywords.add("longint", Token.KEYWORD3);
pascalKeywords.add("integer", Token.KEYWORD3);
}
return pascalKeywords;
}
// private members
private static KeywordMap pascalKeywords;
private KeywordMap keywords;
private int lastOffset;
private int lastKeyword;
private int lastWhitespace;
private boolean doKeyword(Segment line, int i, char c)
{
int i1 = i+1;
int len = i - lastKeyword;
byte id = keywords.lookup(line, lastKeyword, len);
if (id != Token.NULL)
{
if (lastKeyword != lastOffset)
addToken(lastKeyword - lastOffset, Token.NULL);
addToken(len, id);
lastOffset = i;
lastKeyword = i1;
lastWhitespace = i;
return true;
}
lastKeyword = i1;
return false;
}
}
jextSrc-3.2pre4/src/lib/org/gjt/sp/jedit/syntax/SAP2000TokenMarker.java 100644 0 0 20442 7763374343 22656 0 ustar 0 0 /*
* SAP2000TokenMarker.java - SAP2000 token marker
* Copyright (C) 2002 Romain Guy
* romain.guy@jext.org
* www.jext.org
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.gjt.sp.jedit.syntax;
import javax.swing.text.Segment;
public class SAP2000TokenMarker extends TokenMarker
{
// private members
private static KeywordMap sapKeywords;
private KeywordMap keywords;
private int lastOffset;
private int lastKeyword;
public SAP2000TokenMarker()
{
this.keywords = getKeywords();
}
public byte markTokensImpl(byte token, Segment line, int lineIndex)
{
char[] array = line.array;
int offset = line.offset;
lastOffset = offset;
lastKeyword = offset;
int length = line.count + offset;
loop: for(int i = offset; i < length; i++)
{
int i1 = (i+1);
char c = array[i];
switch(token)
{
case Token.NULL:
switch(c)
{
case ';':
addToken(i - lastOffset, token);
addToken(length - i, Token.COMMENT1);
token = Token.NULL;
lastOffset = lastKeyword = length;
break loop;
case ' ':
doKeyword(line, i, c);
break;
default:
if (!Character.isLetterOrDigit(c))
doKeyword(line, i, c);
}
break;
default:
throw new InternalError("Invalid state: " + token);
}
}
if (token == Token.NULL)
doKeyword(line, length, '\0');
switch(token)
{
//case Token.LITERAL1:
//case Token.LITERAL2:
// addToken(length - lastOffset, Token.INVALID);
// token = Token.NULL;
// break;
//case Token.KEYWORD2:
// addToken(length - lastOffset, token);
// token = Token.NULL;
default:
addToken(length - lastOffset, token);
break;
}
return token;
}
public static KeywordMap getKeywords()
{
if (sapKeywords == null)
{
sapKeywords = new KeywordMap(true);
sapKeywords.add("SYSTEM", Token.LABEL);
sapKeywords.add("COORDINATE", Token.LABEL);
sapKeywords.add("JOINT", Token.LABEL);
sapKeywords.add("JOINTS", Token.LABEL);
sapKeywords.add("LOCAL", Token.LABEL);
sapKeywords.add("RESTRAINT", Token.LABEL);
sapKeywords.add("RESTRAINTS", Token.LABEL);
sapKeywords.add("CONSTRAINT", Token.LABEL);
sapKeywords.add("CONSTRAINTS", Token.LABEL);
sapKeywords.add("WELD", Token.LABEL);
sapKeywords.add("PATTERN", Token.LABEL);
sapKeywords.add("SPRING", Token.LABEL);
sapKeywords.add("MASS", Token.LABEL);
sapKeywords.add("MASSES", Token.LABEL);
sapKeywords.add("MATERIAL", Token.LABEL);
sapKeywords.add("FRAME", Token.LABEL);
sapKeywords.add("FRAMES", Token.LABEL);
sapKeywords.add("SHELL", Token.LABEL);
sapKeywords.add("SECTION", Token.LABEL);
sapKeywords.add("SECTIONS", Token.LABEL);
sapKeywords.add("NLPROP", Token.LABEL);
sapKeywords.add("FRAME", Token.LABEL);
sapKeywords.add("SHELL", Token.LABEL);
sapKeywords.add("PLANE", Token.LABEL);
sapKeywords.add("ASOLID", Token.LABEL);
sapKeywords.add("SOLID", Token.LABEL);
sapKeywords.add("NLLINK", Token.LABEL);
sapKeywords.add("MATTEMP", Token.LABEL);
sapKeywords.add("REFTEMP", Token.LABEL);
sapKeywords.add("PRESTRESS", Token.LABEL);
sapKeywords.add("LOAD", Token.LABEL);
sapKeywords.add("LOADS", Token.LABEL);
sapKeywords.add("PDFORCE", Token.LABEL);
sapKeywords.add("PDELTA", Token.LABEL);
sapKeywords.add("MODES", Token.LABEL);
sapKeywords.add("FUNCTION", Token.LABEL);
sapKeywords.add("SPEC", Token.LABEL);
sapKeywords.add("HISTORY", Token.LABEL);
sapKeywords.add("LANE", Token.LABEL);
sapKeywords.add("VEHICLE", Token.LABEL);
sapKeywords.add("VEHICLE", Token.LABEL);
sapKeywords.add("CLASS", Token.LABEL);
sapKeywords.add("RESPONSE", Token.LABEL);
sapKeywords.add("BRIDGE", Token.LABEL);
sapKeywords.add("MOVING", Token.LABEL);
sapKeywords.add("COMBO", Token.LABEL);
sapKeywords.add("OUTPUT", Token.LABEL);
sapKeywords.add("END", Token.LABEL);
sapKeywords.add("NAME", Token.KEYWORD1);
sapKeywords.add("TYPE", Token.KEYWORD1);
sapKeywords.add("IDES", Token.KEYWORD1);
sapKeywords.add("MAT", Token.KEYWORD1);
sapKeywords.add("MATANG", Token.KEYWORD1);
sapKeywords.add("TH", Token.KEYWORD1);
sapKeywords.add("GEN", Token.KEYWORD1);
sapKeywords.add("LGEN", Token.KEYWORD1);
sapKeywords.add("FGEN", Token.KEYWORD1);
sapKeywords.add("EGEN", Token.KEYWORD1);
sapKeywords.add("CGEN", Token.KEYWORD1);
sapKeywords.add("DEL", Token.KEYWORD1);
sapKeywords.add("ADD", Token.KEYWORD1);
sapKeywords.add("REM", Token.KEYWORD1);
sapKeywords.add("ELEM", Token.KEYWORD1);
sapKeywords.add("FACE", Token.KEYWORD1);
sapKeywords.add("CSYS", Token.KEYWORD1);
sapKeywords.add("AXDIR", Token.KEYWORD1);
sapKeywords.add("PLDIR", Token.KEYWORD1);
sapKeywords.add("LOCAL", Token.KEYWORD1);
sapKeywords.add("SW", Token.KEYWORD1);
sapKeywords.add("DOF", Token.KEYWORD2);
sapKeywords.add("LENGTH", Token.KEYWORD2);
sapKeywords.add("FORCE", Token.KEYWORD2);
sapKeywords.add("UP", Token.KEYWORD2);
sapKeywords.add("CYC", Token.KEYWORD2);
sapKeywords.add("WARN", Token.KEYWORD2);
sapKeywords.add("PAGE", Token.KEYWORD2);
sapKeywords.add("LINES", Token.KEYWORD2);
sapKeywords.add("LMAP", Token.KEYWORD2);
sapKeywords.add("FMAP", Token.KEYWORD2);
sapKeywords.add("NLP", Token.KEYWORD2);
sapKeywords.add("AXVEC", Token.KEYWORD2);
sapKeywords.add("PLVEC", Token.KEYWORD2);
sapKeywords.add("ANG", Token.KEYWORD2);
sapKeywords.add("ZERO", Token.KEYWORD2);
sapKeywords.add("UX", Token.KEYWORD2);
sapKeywords.add("UY", Token.KEYWORD2);
sapKeywords.add("UZ", Token.KEYWORD2);
sapKeywords.add("RX", Token.KEYWORD2);
sapKeywords.add("RY ", Token.KEYWORD2);
sapKeywords.add("RZ", Token.KEYWORD2);
sapKeywords.add("U1", Token.KEYWORD2);
sapKeywords.add("U2", Token.KEYWORD2);
sapKeywords.add("U3", Token.KEYWORD2);
sapKeywords.add("R1", Token.KEYWORD2);
sapKeywords.add("R2", Token.KEYWORD2);
sapKeywords.add("R3", Token.KEYWORD2);
sapKeywords.add("RD", Token.KEYWORD2);
sapKeywords.add("PAT", Token.KEYWORD2);
sapKeywords.add("FORCE", Token.KEYWORD3);
sapKeywords.add("RESTRAINT", Token.KEYWORD3);
sapKeywords.add("SPRING", Token.KEYWORD3);
sapKeywords.add("DISPLACEMENT", Token.KEYWORD3);
sapKeywords.add("GRAVITY", Token.KEYWORD3);
sapKeywords.add("CONCENTRATED", Token.KEYWORD3);
sapKeywords.add("SPAN", Token.KEYWORD3);
sapKeywords.add("DISTRIBUTED", Token.KEYWORD3);
sapKeywords.add("PRESTRESS", Token.KEYWORD3);
sapKeywords.add("UNIFORM", Token.KEYWORD3);
sapKeywords.add("SURVACE", Token.KEYWORD3);
sapKeywords.add("PORE", Token.KEYWORD3);
sapKeywords.add("PRESSURE", Token.KEYWORD3);
sapKeywords.add("TEMPERATURE", Token.KEYWORD3);
sapKeywords.add("ROTATE", Token.KEYWORD3);
}
return sapKeywords;
}
private boolean doKeyword(Segment line, int i, char c)
{
int i1 = i + 1;
int len = i - lastKeyword;
byte id = keywords.lookup(line, lastKeyword, len);
if (id != Token.NULL)
{
if(lastKeyword != lastOffset)
addToken(lastKeyword - lastOffset, Token.NULL);
addToken(len, id);
lastOffset = i;
}
lastKeyword = i1;
return false;
}
}
// End of SAP2000TokenMarker.java
jextSrc-3.2pre4/src/lib/org/gjt/sp/jedit/syntax/PikeTokenMarker.java 100644 0 0 5632 7763374344 22606 0 ustar 0 0 /*
* PikeTokenMarker.java - Java token marker
* Copyright (C) 2002 Romain Guy
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.gjt.sp.jedit.syntax;
import javax.swing.text.Segment;
/**
* Pike token marker.
*
* @author Romain Guy
*/
public class PikeTokenMarker extends CTokenMarker
{
public PikeTokenMarker()
{
super(true, false, getKeywords());
}
public static KeywordMap getKeywords()
{
if (pikeKeywords == null)
{
pikeKeywords = new KeywordMap(false);
pikeKeywords.add("array", Token.KEYWORD3);
pikeKeywords.add("break", Token.KEYWORD1);
pikeKeywords.add("case", Token.KEYWORD1);
pikeKeywords.add("catch", Token.KEYWORD1);
pikeKeywords.add("continue", Token.KEYWORD1);
pikeKeywords.add("default", Token.KEYWORD1);
pikeKeywords.add("do", Token.KEYWORD1);
pikeKeywords.add("else", Token.KEYWORD1);
pikeKeywords.add("float", Token.KEYWORD3);
pikeKeywords.add("for", Token.KEYWORD1);
pikeKeywords.add("foreach", Token.KEYWORD1);
pikeKeywords.add("function", Token.KEYWORD1);
pikeKeywords.add("gauge", Token.KEYWORD1);
pikeKeywords.add("if", Token.KEYWORD1);
pikeKeywords.add("inherit", Token.KEYWORD1);
pikeKeywords.add("inline", Token.KEYWORD1);
pikeKeywords.add("int", Token.KEYWORD3);
pikeKeywords.add("lambda", Token.KEYWORD1);
pikeKeywords.add("mapping", Token.KEYWORD1);
pikeKeywords.add("mixed", Token.KEYWORD3);
pikeKeywords.add("multiset", Token.KEYWORD1);
pikeKeywords.add("nomask", Token.KEYWORD1);
pikeKeywords.add("object", Token.KEYWORD3);
pikeKeywords.add("predef", Token.KEYWORD1);
pikeKeywords.add("private", Token.KEYWORD1);
pikeKeywords.add("program", Token.KEYWORD1);
pikeKeywords.add("protected", Token.KEYWORD1);
pikeKeywords.add("public", Token.KEYWORD1);
pikeKeywords.add("return", Token.KEYWORD1);
pikeKeywords.add("sscanf", Token.KEYWORD1);
pikeKeywords.add("static", Token.KEYWORD1);
pikeKeywords.add("string", Token.KEYWORD3);
pikeKeywords.add("switch", Token.KEYWORD1);
pikeKeywords.add("typeof", Token.KEYWORD1);
pikeKeywords.add("varargs", Token.KEYWORD1);
pikeKeywords.add("void", Token.KEYWORD3);
pikeKeywords.add("while", Token.KEYWORD1);
}
return pikeKeywords;
}
// private members
private static KeywordMap pikeKeywords;
}
jextSrc-3.2pre4/src/lib/org/gjt/sp/jedit/syntax/BatchFileTokenMarker.java 100644 0 0 10336 7763374344 23554 0 ustar 0 0 /*
* BatchFileTokenMarker.java - Batch file token marker
* Copyright (C) 1998, 1999 Slava Pestov
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.gjt.sp.jedit.syntax;
import javax.swing.text.Segment;
/**
* Batch file token marker.
*
* @author Slava Pestov
* @version $Id: BatchFileTokenMarker.java,v 1.1.1.1 2001/08/20 22:32:04 gfx Exp $
*/
public class BatchFileTokenMarker extends TokenMarker
{
public byte markTokensImpl(byte token, Segment line, int lineIndex)
{
char[] array = line.array;
int offset = line.offset;
int lastOffset = offset;
int length = line.count + offset;
if(SyntaxUtilities.regionMatches(true,line,offset,"rem"))
{
addToken(line.count,Token.COMMENT1);
return Token.NULL;
}
loop: for(int i = offset; i < length; i++)
{
int i1 = (i+1);
switch(token)
{
case Token.NULL:
switch(array[i])
{
case '%':
addToken(i - lastOffset,token);
lastOffset = i;
if(length - i <= 3 || array[i+2] == ' ')
{
addToken(2,Token.KEYWORD2);
i += 2;
lastOffset = i;
}
else
token = Token.KEYWORD2;
break;
case '"':
addToken(i - lastOffset,token);
token = Token.LITERAL1;
lastOffset = i;
break;
case ':':
if(i == offset)
{
addToken(line.count,Token.LABEL);
lastOffset = length;
break loop;
}
break;
case ' ':
if(lastOffset == offset)
{
addToken(i - lastOffset,Token.KEYWORD1);
lastOffset = i;
}
break;
}
break;
case Token.KEYWORD2:
if(array[i] == '%')
{
addToken(i1 - lastOffset,token);
token = Token.NULL;
lastOffset = i1;
}
break;
case Token.LITERAL1:
if(array[i] == '"')
{
addToken(i1 - lastOffset,token);
token = Token.NULL;
lastOffset = i1;
}
break;
default:
throw new InternalError("Invalid state: " + token);
}
}
if(lastOffset != length)
{
if(token != Token.NULL)
token = Token.INVALID;
else if(lastOffset == offset)
token = Token.KEYWORD1;
addToken(length - lastOffset,token);
}
return Token.NULL;
}
public boolean supportsMultilineTokens()
{
return false;
}
}
/*
* ChangeLog:
* $Log: BatchFileTokenMarker.java,v $
* Revision 1.1.1.1 2001/08/20 22:32:04 gfx
* Jext 3.0pre5
*
* Revision 1.1.1.1 2001/04/11 14:22:28 gfx
*
* Jext 2.11: GUI customization, bug fixes
*
* Revision 1.20 1999/12/13 03:40:29 sp
* Bug fixes, syntax is now mostly GPL'd
*
* Revision 1.19 1999/07/16 23:45:49 sp
* 1.7pre6 BugFree version
*
* Revision 1.18 1999/07/05 04:38:39 sp
* Massive batch of changes... bug fixes, also new text component is in place.
* Have fun
*
* Revision 1.17 1999/06/20 02:15:45 sp
* Syntax coloring optimizations
*
* Revision 1.16 1999/06/05 00:22:58 sp
* LGPL'd syntax package
*
* Revision 1.15 1999/06/03 08:24:13 sp
* Fixing broken CVS
*
* Revision 1.16 1999/05/31 08:11:10 sp
* Syntax coloring updates, expand abbrev bug fix
*
* Revision 1.15 1999/05/31 04:38:51 sp
* Syntax optimizations, HyperSearch for Selection added (Mike Dillon)
*
* Revision 1.14 1999/04/19 05:38:20 sp
* Syntax API changes
*
* Revision 1.13 1999/03/26 05:13:04 sp
* Enhanced menu item updates
*
* Revision 1.12 1999/03/13 08:50:39 sp
* Syntax colorizing updates and cleanups, general code reorganizations
*
* Revision 1.11 1999/03/13 00:09:07 sp
* Console updates, uncomment removed cos it's too buggy, cvs log tags added
*
* Revision 1.10 1999/03/12 23:51:00 sp
* Console updates, uncomment removed cos it's too buggy, cvs log tags added
*
*/
jextSrc-3.2pre4/src/lib/org/gjt/sp/jedit/syntax/PovrayTokenMarker.java 100644 0 0 24314 7763374345 23215 0 ustar 0 0 /*
* PovrayTokenMarker.java - Povray token marker
* Copyright (C) 0000 Romain Guy
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 0
* of the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 09 Temple Place - Suite000, Boston, MA 00000-0007, USA.
*/
package org.gjt.sp.jedit.syntax;
import javax.swing.text.Segment;
/**
* Povray token marker.
* @author Romain Guy
*/
public class PovrayTokenMarker extends CTokenMarker
{
// private members
private static KeywordMap povrayKeywords;
public PovrayTokenMarker()
{
super(true, true, getKeywords());
}
public static KeywordMap getKeywords()
{
if (povrayKeywords == null)
{
povrayKeywords = new KeywordMap(false);
povrayKeywords.add("adaptive", Token.KEYWORD1);
povrayKeywords.add("agate", Token.KEYWORD1);
povrayKeywords.add("agate_turb", Token.KEYWORD1);
povrayKeywords.add("all", Token.KEYWORD1);
povrayKeywords.add("alpha", Token.KEYWORD1);
povrayKeywords.add("ambient", Token.KEYWORD1);
povrayKeywords.add("angle", Token.KEYWORD1);
povrayKeywords.add("arc_angle", Token.KEYWORD1);
povrayKeywords.add("area_light", Token.KEYWORD3);
povrayKeywords.add("atmosphere", Token.KEYWORD3);
povrayKeywords.add("atmospheric_attenuation", Token.KEYWORD1);
povrayKeywords.add("background", Token.KEYWORD3);
povrayKeywords.add("bicubic_patch", Token.KEYWORD3);
povrayKeywords.add("blob", Token.KEYWORD3);
povrayKeywords.add("blue", Token.LITERAL2);
povrayKeywords.add("bounded_by", Token.KEYWORD1);
povrayKeywords.add("box", Token.KEYWORD3);
povrayKeywords.add("bozo", Token.KEYWORD1);
povrayKeywords.add("brilliance", Token.KEYWORD1);
povrayKeywords.add("bumps", Token.KEYWORD1);
povrayKeywords.add("bump_map", Token.KEYWORD3);
povrayKeywords.add("bump_size", Token.KEYWORD1);
povrayKeywords.add("camera", Token.KEYWORD3);
povrayKeywords.add("checker", Token.KEYWORD1);
povrayKeywords.add("clipped_by", Token.KEYWORD1);
povrayKeywords.add("clock", Token.LITERAL2);
povrayKeywords.add("color", Token.KEYWORD1);
povrayKeywords.add("color_map", Token.KEYWORD3);
povrayKeywords.add("colour", Token.KEYWORD1);
povrayKeywords.add("colour_map", Token.KEYWORD3);
povrayKeywords.add("component", Token.KEYWORD1);
povrayKeywords.add("composite", Token.KEYWORD1);
povrayKeywords.add("cone", Token.KEYWORD3);
povrayKeywords.add("crand", Token.KEYWORD1);
povrayKeywords.add("cubic", Token.KEYWORD3);
povrayKeywords.add("cylinder", Token.KEYWORD3);
povrayKeywords.add("cylindrical_mapping", Token.KEYWORD1);
povrayKeywords.add("declare", Token.LITERAL2);
povrayKeywords.add("default", Token.LITERAL2);
povrayKeywords.add("dents", Token.KEYWORD1);
povrayKeywords.add("difference", Token.KEYWORD1);
povrayKeywords.add("diffuse", Token.KEYWORD1);
povrayKeywords.add("direction", Token.KEYWORD1);
povrayKeywords.add("disc", Token.KEYWORD3);
povrayKeywords.add("distance", Token.KEYWORD1);
povrayKeywords.add("dump", Token.KEYWORD1);
povrayKeywords.add("emitting", Token.KEYWORD1);
povrayKeywords.add("falloff", Token.KEYWORD1);
povrayKeywords.add("falloff_angle", Token.KEYWORD1);
povrayKeywords.add("filter", Token.KEYWORD1);
povrayKeywords.add("finish", Token.KEYWORD3);
povrayKeywords.add("flatness", Token.KEYWORD1);
povrayKeywords.add("fog", Token.KEYWORD3);
povrayKeywords.add("fog_alt", Token.KEYWORD1);
povrayKeywords.add("fog_offset", Token.KEYWORD1);
povrayKeywords.add("fog_type", Token.KEYWORD1);
povrayKeywords.add("frequency", Token.KEYWORD1);
povrayKeywords.add("gif", Token.LITERAL2);
povrayKeywords.add("gradient", Token.KEYWORD3);
povrayKeywords.add("granite", Token.KEYWORD1);
povrayKeywords.add("green", Token.LITERAL2);
povrayKeywords.add("height_field", Token.KEYWORD3);
povrayKeywords.add("hexagon", Token.KEYWORD1);
povrayKeywords.add("iff", Token.LITERAL2);
povrayKeywords.add("image_map", Token.KEYWORD3);
povrayKeywords.add("include", Token.LITERAL2);
povrayKeywords.add("interpolate", Token.KEYWORD1);
povrayKeywords.add("intersection", Token.KEYWORD1);
povrayKeywords.add("inverse", Token.KEYWORD1);
povrayKeywords.add("ior", Token.KEYWORD1);
povrayKeywords.add("halo", Token.KEYWORD3);
povrayKeywords.add("jitter", Token.KEYWORD1);
povrayKeywords.add("lambda", Token.KEYWORD1);
povrayKeywords.add("leopard", Token.KEYWORD1);
povrayKeywords.add("light_source", Token.KEYWORD3);
povrayKeywords.add("linear", Token.KEYWORD1);
povrayKeywords.add("linear_spline", Token.KEYWORD1);
povrayKeywords.add("location", Token.KEYWORD1);
povrayKeywords.add("looks_like", Token.KEYWORD1);
povrayKeywords.add("look_at", Token.KEYWORD1);
povrayKeywords.add("mandel", Token.KEYWORD1);
povrayKeywords.add("map_type", Token.KEYWORD1);
povrayKeywords.add("marble", Token.KEYWORD1);
povrayKeywords.add("material_map", Token.KEYWORD3);
povrayKeywords.add("max_intersections", Token.LABEL);
povrayKeywords.add("max_trace_level", Token.LABEL);
povrayKeywords.add("merge", Token.KEYWORD1);
povrayKeywords.add("metallic", Token.KEYWORD1);
povrayKeywords.add("normal", Token.KEYWORD3);
povrayKeywords.add("no_shadow", Token.KEYWORD1);
povrayKeywords.add("object", Token.KEYWORD3);
povrayKeywords.add("off", Token.LITERAL2);
povrayKeywords.add("on", Token.LITERAL2);
povrayKeywords.add("octaves", Token.KEYWORD1);
povrayKeywords.add("omega", Token.KEYWORD1);
povrayKeywords.add("once", Token.KEYWORD1);
povrayKeywords.add("onion", Token.KEYWORD1);
povrayKeywords.add("open", Token.KEYWORD1);
povrayKeywords.add("phase", Token.KEYWORD1);
povrayKeywords.add("phong", Token.KEYWORD1);
povrayKeywords.add("phong_size", Token.KEYWORD1);
povrayKeywords.add("pigment", Token.KEYWORD3);
povrayKeywords.add("plane", Token.KEYWORD3);
povrayKeywords.add("point_at", Token.KEYWORD1);
povrayKeywords.add("poly", Token.KEYWORD3);
povrayKeywords.add("pot", Token.LITERAL2);
povrayKeywords.add("prism", Token.KEYWORD3);
povrayKeywords.add("quadric", Token.KEYWORD3);
povrayKeywords.add("quartic", Token.KEYWORD3);
povrayKeywords.add("quick_color", Token.KEYWORD1);
povrayKeywords.add("quick_colour", Token.KEYWORD1);
povrayKeywords.add("radial", Token.KEYWORD1);
povrayKeywords.add("radius", Token.KEYWORD1);
povrayKeywords.add("rainbow", Token.KEYWORD3);
povrayKeywords.add("raw", Token.KEYWORD1);
povrayKeywords.add("red", Token.LITERAL2);
povrayKeywords.add("reflection", Token.KEYWORD1);
povrayKeywords.add("refraction", Token.KEYWORD1);
povrayKeywords.add("rgb", Token.KEYWORD1);
povrayKeywords.add("rgbf", Token.KEYWORD1);
povrayKeywords.add("rgbt", Token.KEYWORD1);
povrayKeywords.add("right", Token.KEYWORD1);
povrayKeywords.add("ripples", Token.KEYWORD1);
povrayKeywords.add("rotate", Token.KEYWORD1);
povrayKeywords.add("roughness", Token.KEYWORD1);
povrayKeywords.add("samples", Token.KEYWORD1);
povrayKeywords.add("scale", Token.KEYWORD1);
povrayKeywords.add("scattering", Token.KEYWORD1);
povrayKeywords.add("shadowless", Token.KEYWORD1);
povrayKeywords.add("sky", Token.KEYWORD3);
povrayKeywords.add("sky_sphere", Token.KEYWORD3);
povrayKeywords.add("