coboltokenmarker.java
来自「java写的多功能文件编辑器」· Java 代码 · 共 835 行 · 第 1/3 页
JAVA
835 行
/* * CobolTokenMarker.java - Dawn token marker * Copyright (C) 2000 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 CobolTokenMarker extends TokenMarker{ // private members private static KeywordMap cobolKeywords; private KeywordMap keywords; private int lastOffset; private int lastKeyword; public CobolTokenMarker() { 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 'E': if (SyntaxUtilities.regionMatches(false, line, i1, "XEC SQL")) { doKeyword(line, i, c); i += 7; token = Token.KEYWORD3; } break; case '*': addToken(i - lastOffset, token); addToken(length - i, Token.COMMENT1); token = Token.NULL; lastOffset = lastKeyword = length; break loop; case '"': doKeyword(line, i, c); addToken(i - lastOffset,token); token = Token.LITERAL1; lastOffset = lastKeyword = i; break; case '\'': doKeyword(line, i, c); addToken(i - lastOffset,token); token = Token.LITERAL2; lastOffset = lastKeyword = i; break; case ' ': doKeyword(line, i, c); } break; case Token.KEYWORD3: if (c == 'E') { if (SyntaxUtilities.regionMatches(false, line, i1, "ND-EXEC")) { i += 8; addToken(i - lastOffset, token); token = Token.NULL; lastOffset = lastKeyword = i; } } break; case Token.LITERAL1: if(c == '"') { addToken(i1 - lastOffset, token); token = Token.NULL; lastOffset = lastKeyword = i1; } break; case Token.LITERAL2: 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); // token = Token.NULL; default: addToken(length - lastOffset, token); break; } return token; } public static KeywordMap getKeywords() { if (cobolKeywords == null) { cobolKeywords = new KeywordMap(false); cobolKeywords.add("ACCEPT", Token.KEYWORD1); cobolKeywords.add("ACCESS", Token.KEYWORD1); cobolKeywords.add("ACTUAL", Token.KEYWORD1); cobolKeywords.add("ADD", Token.KEYWORD1); cobolKeywords.add("ADDRESS", Token.KEYWORD1); cobolKeywords.add("ADVANCING", Token.KEYWORD1); cobolKeywords.add("AFTER", Token.KEYWORD1); cobolKeywords.add("ALL", Token.KEYWORD1); cobolKeywords.add("ALPHABET", Token.KEYWORD1); cobolKeywords.add("ALPHABETIC", Token.KEYWORD1); cobolKeywords.add("ALPHABETIC-LOWER", Token.KEYWORD1); cobolKeywords.add("ALPHABETIC-UPPER", Token.KEYWORD1); cobolKeywords.add("ALPHANUMERIC", Token.KEYWORD1); cobolKeywords.add("ALPHANUMERIC-EDITED", Token.KEYWORD1); cobolKeywords.add("ALSO", Token.KEYWORD1); cobolKeywords.add("ALTER", Token.KEYWORD1); cobolKeywords.add("ALTERNATE", Token.KEYWORD1); cobolKeywords.add("AND", Token.KEYWORD1); cobolKeywords.add("ANY", Token.KEYWORD1); cobolKeywords.add("API", Token.KEYWORD1); cobolKeywords.add("APPLY", Token.KEYWORD1); cobolKeywords.add("ARE", Token.KEYWORD1); cobolKeywords.add("AREA", Token.KEYWORD1); cobolKeywords.add("AREAS", Token.KEYWORD1); cobolKeywords.add("ASCENDING", Token.KEYWORD1); cobolKeywords.add("ASSIGN", Token.KEYWORD1); cobolKeywords.add("AT", Token.KEYWORD1); cobolKeywords.add("AUTHOR", Token.KEYWORD1); cobolKeywords.add("AUTO", Token.KEYWORD1); cobolKeywords.add("AUTO-SKIP", Token.KEYWORD1); cobolKeywords.add("AUTOMATIC", Token.KEYWORD1); cobolKeywords.add("BACKGROUND-COLOR", Token.KEYWORD1); cobolKeywords.add("BACKGROUND-COLOUR", Token.KEYWORD1); cobolKeywords.add("BACKWARD", Token.KEYWORD1); cobolKeywords.add("BASIS", Token.KEYWORD1); cobolKeywords.add("BEEP", Token.KEYWORD1); cobolKeywords.add("BEFORE", Token.KEYWORD1); cobolKeywords.add("BEGINNING", Token.KEYWORD1); cobolKeywords.add("BELL", Token.KEYWORD1); cobolKeywords.add("BINARY", Token.KEYWORD1); cobolKeywords.add("BLANK", Token.KEYWORD1); cobolKeywords.add("BLINK", Token.KEYWORD1); cobolKeywords.add("BLOCK", Token.KEYWORD1); cobolKeywords.add("BOTTOM", Token.KEYWORD1); cobolKeywords.add("BY", Token.KEYWORD1); cobolKeywords.add("C01", Token.KEYWORD1); cobolKeywords.add("C02", Token.KEYWORD1); cobolKeywords.add("C03", Token.KEYWORD1); cobolKeywords.add("C04", Token.KEYWORD1); cobolKeywords.add("C05", Token.KEYWORD1); cobolKeywords.add("C06", Token.KEYWORD1); cobolKeywords.add("C07", Token.KEYWORD1); cobolKeywords.add("C08", Token.KEYWORD1); cobolKeywords.add("C09", Token.KEYWORD1); cobolKeywords.add("C10", Token.KEYWORD1); cobolKeywords.add("C11", Token.KEYWORD1); cobolKeywords.add("C12", Token.KEYWORD1); cobolKeywords.add("CALL", Token.KEYWORD1); cobolKeywords.add("CALL-CONVENTION", Token.KEYWORD1); cobolKeywords.add("CANCEL", Token.KEYWORD1); cobolKeywords.add("CBL", Token.KEYWORD1); cobolKeywords.add("CD", Token.KEYWORD1); cobolKeywords.add("CF", Token.KEYWORD1); cobolKeywords.add("CH", Token.KEYWORD1); cobolKeywords.add("CHAIN", Token.KEYWORD1); cobolKeywords.add("CHAINING", Token.KEYWORD1); cobolKeywords.add("CHANGED", Token.KEYWORD1); cobolKeywords.add("CHARACTER", Token.KEYWORD1); cobolKeywords.add("CHARACTERS", Token.KEYWORD1); cobolKeywords.add("CLASS", Token.KEYWORD1); cobolKeywords.add("CLOCK-UNITS", Token.KEYWORD1); cobolKeywords.add("CLOSE", Token.KEYWORD1); cobolKeywords.add("COBOL", Token.KEYWORD1); cobolKeywords.add("CODE", Token.KEYWORD1); cobolKeywords.add("CODE-SET", Token.KEYWORD1); cobolKeywords.add("COL", Token.KEYWORD1); cobolKeywords.add("COLLATING", Token.KEYWORD1); cobolKeywords.add("COLUMN", Token.KEYWORD1); cobolKeywords.add("COM-REG", Token.KEYWORD1); cobolKeywords.add("COMMA", Token.KEYWORD1); cobolKeywords.add("COMMIT", Token.KEYWORD1); cobolKeywords.add("COMMON", Token.KEYWORD1); cobolKeywords.add("COMMUNICATION", Token.KEYWORD1); cobolKeywords.add("COMP", Token.KEYWORD1); cobolKeywords.add("COMP-0", Token.KEYWORD1); cobolKeywords.add("COMP-1", Token.KEYWORD1); cobolKeywords.add("COMP-2", Token.KEYWORD1); cobolKeywords.add("COMP-3", Token.KEYWORD1); cobolKeywords.add("COMP-4", Token.KEYWORD1); cobolKeywords.add("COMP-5", Token.KEYWORD1); cobolKeywords.add("COMP-6", Token.KEYWORD1); cobolKeywords.add("COMP-X", Token.KEYWORD1); cobolKeywords.add("COMPUTATIONAL", Token.KEYWORD1); cobolKeywords.add("COMPUTATIONAL-0", Token.KEYWORD1); cobolKeywords.add("COMPUTATIONAL-1", Token.KEYWORD1); cobolKeywords.add("COMPUTATIONAL-2", Token.KEYWORD1); cobolKeywords.add("COMPUTATIONAL-3", Token.KEYWORD1); cobolKeywords.add("COMPUTATIONAL-4", Token.KEYWORD1); cobolKeywords.add("COMPUTATIONAL-5", Token.KEYWORD1); cobolKeywords.add("COMPUTATIONAL-6", Token.KEYWORD1); cobolKeywords.add("COMPUTATIONAL-X", Token.KEYWORD1); cobolKeywords.add("COMPUTE", Token.KEYWORD1); cobolKeywords.add("CONFIGURATION", Token.KEYWORD1); cobolKeywords.add("CONSOLE", Token.KEYWORD1); cobolKeywords.add("CONTAINS", Token.KEYWORD1); cobolKeywords.add("CONTENT", Token.KEYWORD1); cobolKeywords.add("CONTINUE", Token.KEYWORD1); cobolKeywords.add("CONTROL", Token.KEYWORD1); cobolKeywords.add("CONTROLS", Token.KEYWORD1); cobolKeywords.add("CONVERTING", Token.KEYWORD1); cobolKeywords.add("COPY", Token.KEYWORD1); cobolKeywords.add("CORE-INDEX", Token.KEYWORD1); cobolKeywords.add("CORR", Token.KEYWORD1); cobolKeywords.add("CORRESPONDING", Token.KEYWORD1); cobolKeywords.add("COUNT", Token.KEYWORD1); cobolKeywords.add("CRT", Token.KEYWORD1); cobolKeywords.add("CRT-UNDER", Token.KEYWORD1); cobolKeywords.add("CURRENCY", Token.KEYWORD1); cobolKeywords.add("CURRENT-DATE", Token.KEYWORD1); cobolKeywords.add("CURSOR", Token.KEYWORD1); cobolKeywords.add("CYCLE", Token.KEYWORD1); cobolKeywords.add("CYL-INDEX", Token.KEYWORD1); cobolKeywords.add("CYL-OVERFLOW", Token.KEYWORD1); cobolKeywords.add("DATA", Token.KEYWORD1); cobolKeywords.add("DATE", Token.KEYWORD1); cobolKeywords.add("DATE-COMPILED", Token.KEYWORD1); cobolKeywords.add("DATE-WRITTEN", Token.KEYWORD1); cobolKeywords.add("DAY", Token.KEYWORD1); cobolKeywords.add("DAY-OF-WEEK", Token.KEYWORD1);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?