|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object
|
+--org.comedia.util.scanner.CScanner
|
+--org.comedia.util.scanner.CXmlScanner
Performs lexical scanning for XML-like languages.
Example of scanner usage:
System.out.println("*********** Xml Scanner Test *************");
CXmlScanner scanner = new CXmlScanner();
scanner.setBuffer("param+0.1=\"xxx\">\"www\" +=11 labmda a/>");
scanner.setShowEol(true);
scanner.setShowSpace(true);
scanner.setShowComment(true);
// Tests string convertions
String str = "The test \'string\'";
System.out.println("Start string: " + str);
str = scanner.wrapString(str);
System.out.println("Wrapped string: " + str);
str = scanner.unwrapString(str);
System.out.println("Unwrapped string: " + str);
System.out.println();
System.out.println("Initial string: " + scanner.getBuffer());
while (scanner.lex() != EOF) {
switch (scanner.getTokenType()) {
case UNKNOWN: System.out.print("Type: Unknown "); break;
case COMMENT: System.out.print("Type: Comment "); break;
case KEYWORD: System.out.print("Type: Keyword "); break;
case TYPE: System.out.print("Type: Type "); break;
case IDENT: System.out.print("Type: Ident "); break;
case ALPHA: System.out.print("Type: Alpha "); break;
case OPERATOR: System.out.print("Type: Operator "); break;
case BRACE: System.out.print("Type: Brace "); break;
case SEPARATOR: System.out.print("Type: Separator "); break;
case EOL: System.out.print("Type: Eol "); break;
case LF: System.out.print("Type: Lf "); break;
case SPACE: System.out.print("Type: Space "); break;
case INT: System.out.print("Type: Int "); break;
case FLOAT: System.out.print("Type: Float "); break;
case STRING: System.out.print("Type: String "); break;
case BOOL: System.out.print("Type: Bool "); break;
case EOF: System.out.print("Type: Eof "); break;
}
System.out.println("Value: '" + scanner.getToken()
+ "' Pos: " + scanner.getPosition() + " Line: " + scanner.getLineNo());
}
The result:
*********** Xml Scanner Test ************* Start string: The test 'string' Wrapped string: "The test 'string'" Unwrapped string: The test 'string' Initial string: param+0.1="xxx">"www" +=11 labmda a/> Value: '' Pos: 0 Line: 0 Type: Ident Value: 'xml' Pos: 2 Line: 0 Type: Space Value: ' ' Pos: 5 Line: 0 Type: Comment Value: '' Pos: 6 Line: 0 Type: Ident Value: 'param' Pos: 22 Line: 0 Value: '+' Pos: 27 Line: 0 Type: Float Value: '0.1' Pos: 28 Line: 0 Type: Operator Value: '=' Pos: 31 Line: 0 Type: String Value: '"xxx"' Pos: 32 Line: 0 Value: '>' Pos: 37 Line: 0 Type: Unknown Value: '"www"' Pos: 38 Line: 0 Type: Space Value: ' ' Pos: 43 Line: 0 Type: Unknown Value: '+=11' Pos: 44 Line: 0 Type: Space Value: ' ' Pos: 48 Line: 0 Type: Unknown Value: 'labmda' Pos: 49 Line: 0 Value: '' Pos: 55 Line: 0 Type: Space Value: ' ' Pos: 57 Line: 0 Type: Ident Value: 'a' Pos: 58 Line: 0 Value: '/>' Pos: 59 Line: 0
| Inner classes inherited from class org.comedia.util.scanner.CScanner |
CScanner.Lexem |
| Fields inherited from class org.comedia.util.scanner.CScanner |
ALPHA, BOOL, BRACE, buffer, bufferLen, bufferLine, bufferPos, COMMENT, CONST, current, DELIM, EOF, EOL, FLOAT, IDENT, INT, KEYWORD, keywords, LF, next, OPERATOR, operators, SEPARATOR, showComment, showEol, showKeyword, showSpace, showString, showType, SPACE, STRING, TYPE, types, UNKNOWN |
| Constructor Summary | |
CXmlScanner()
Constructs this class with default parameters. |
|
| Method Summary | |
static int |
convertHex2Int(java.lang.String s)
Converts hex decimal string into integer. |
boolean |
isInsideTag()
Check is current parsing inside a tag. |
protected int |
lowRunLex(CScanner.Lexem curr)
Gets a lowlevel token. |
static void |
main(java.lang.String[] args)
The main function for test purposes. |
void |
setBuffer(java.lang.String s)
Sets a new input buffer and resets buffer pointers. |
static java.lang.String |
unwrapString(java.lang.String s)
Converts a string from XML-like escape format limited with quotes into oridinary (local) presentation. |
static java.lang.String |
unwrapValue(java.lang.String s)
Converts a value from XML-like escape format limited with quotes into oridinary (local) presentation. |
static java.lang.String |
wrapString(java.lang.String s)
Converts a string from ordinary into XML-like escape format limited with quotes. |
static java.lang.String |
wrapValue(java.lang.String s)
Converts a value from ordinary into XML-like escape format limited with quotes. |
| Methods inherited from class org.comedia.util.scanner.CScanner |
extractNextToken, extractToken, getBuffer, getBufferPos, getLineNo, getNextLineNo, getNextPosition, getNextToken, getNextTokenType, getPosition, getToken, getTokenType, gotoNextToken, innerProcCComment, innerProcCString, innerProcIdent, innerProcLineComment, innerProcPasString, innerProcString, innerStartLex, isAlpha, isDelim, isDigit, isEol, isLetter, isQuote, isShowComment, isShowEol, isShowKeyword, isShowSpace, isShowString, isShowType, isWhite, lex, restart, runLex, searchForString, setShowComment, setShowEol, setShowKeyword, setShowSpace, setShowString, setShowType |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public CXmlScanner()
| Method Detail |
public boolean isInsideTag()
public void setBuffer(java.lang.String s)
setBuffer in class CScanners - a new input stream.protected int lowRunLex(CScanner.Lexem curr)
lowRunLex in class CScannercurr - a "Holder" which containes extracted token.public static java.lang.String wrapValue(java.lang.String s)
s - a string in ordinary (local) presentation.public static java.lang.String wrapString(java.lang.String s)
s - a string in ordinary (local) presentation.public static int convertHex2Int(java.lang.String s)
s - a hex decimal string.public static java.lang.String unwrapValue(java.lang.String s)
s - a string in XML-like escape format.public static java.lang.String unwrapString(java.lang.String s)
s - a string in XML-like escape format.public static void main(java.lang.String[] args)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||