|
|||||||||
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 CScanner
s
- a new input stream.protected int lowRunLex(CScanner.Lexem curr)
lowRunLex
in class CScanner
curr
- 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 |