[Smax-commit] SF.net SVN: smax: [35] trunk/smax
Status: Alpha
Brought to you by:
dbrosius
|
From: <dbr...@us...> - 2008-01-27 18:20:40
|
Revision: 35
http://smax.svn.sourceforge.net/smax/?rev=35&view=rev
Author: dbrosius
Date: 2008-01-27 10:20:30 -0800 (Sun, 27 Jan 2008)
Log Message:
-----------
implement PCData parsing
Modified Paths:
--------------
trunk/smax/src/com/mebigfatguy/smax/SmaxParser.java
trunk/smax/test/com/mebigfatguy/smax/SmaxParserTest.java
Modified: trunk/smax/src/com/mebigfatguy/smax/SmaxParser.java
===================================================================
--- trunk/smax/src/com/mebigfatguy/smax/SmaxParser.java 2008-01-25 04:45:37 UTC (rev 34)
+++ trunk/smax/src/com/mebigfatguy/smax/SmaxParser.java 2008-01-27 18:20:30 UTC (rev 35)
@@ -94,6 +94,15 @@
}
break;
+ case PCDATA:
+ if (c == '<') {
+ state = SmaxParseState.LTSYM;
+ return new SmaxToken(SmaxTokenType.PCData, sb.toString());
+ } else {
+ sb.append(c);
+ }
+ break;
+
case LTSYM:
if (c == '/') {
state = SmaxParseState.ENDTAGNAME;
Modified: trunk/smax/test/com/mebigfatguy/smax/SmaxParserTest.java
===================================================================
--- trunk/smax/test/com/mebigfatguy/smax/SmaxParserTest.java 2008-01-25 04:45:37 UTC (rev 34)
+++ trunk/smax/test/com/mebigfatguy/smax/SmaxParserTest.java 2008-01-27 18:20:30 UTC (rev 35)
@@ -74,6 +74,20 @@
t = parser.getNextToken(r);
Assert.assertEquals(SmaxTokenType.AttributeValue, t.getTokenType());
Assert.assertEquals("2", t.getTokenValue());
-
}
+
+ @Test
+ public void testPCData() throws Exception {
+ SmaxParser parser = new SmaxParser();
+ Reader r = new BufferedReader(new StringReader("<test>Sample Data</test>"));
+ SmaxToken t = parser.getNextToken(r);
+ Assert.assertEquals(SmaxTokenType.StartTag, t.getTokenType());
+ Assert.assertEquals("test", t.getTokenValue());
+ t = parser.getNextToken(r);
+ Assert.assertEquals(SmaxTokenType.PCData, t.getTokenType());
+ Assert.assertEquals("Sample Data", t.getTokenValue());
+ t = parser.getNextToken(r);
+ Assert.assertEquals(SmaxTokenType.EndTag, t.getTokenType());
+ Assert.assertEquals("test", t.getTokenValue());
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|