Update of /cvsroot/csmail/csmail/src/CSMail.Utils
In directory usw-pr-cvs1:/tmp/cvs-serv30738
Modified Files:
ChangeLog HeaderTokenType.cs HeaderTokenizer.cs
Log Message:
2002-10-07
* HeaderTokenType.cs : Removed member "NotSet".
: Added member "Delimiter".
* HeaderTokenizer.cs : GetNextToken() - Implemented.
: Peek() - Implemented.
: Remainder { get; } - Implemented.
Index: ChangeLog
===================================================================
RCS file: /cvsroot/csmail/csmail/src/CSMail.Utils/ChangeLog,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- ChangeLog 7 Oct 2002 12:56:01 -0000 1.16
+++ ChangeLog 8 Oct 2002 04:39:32 -0000 1.17
@@ -1,6 +1,14 @@
2002-10-07 Gaurav Vaish <mastergaurav AT users DOT sf DOT net>
+ * HeaderTokenType.cs : Removed member "NotSet".
+ : Added member "Delimiter".
+ * HeaderTokenizer.cs : GetNextToken() - Implemented.
+ : Peek() - Implemented.
+ : Remainder { get; } - Implemented.
+
+2002-10-07 Gaurav Vaish <mastergaurav AT users DOT sf DOT net>
+
* HeaderTokenType.cs : Added member "Undefined".
* HeaderTokenizer.cs : SkipWhiteSpace(),
: ParseToken(string, int, int)
Index: HeaderTokenType.cs
===================================================================
RCS file: /cvsroot/csmail/csmail/src/CSMail.Utils/HeaderTokenType.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- HeaderTokenType.cs 7 Oct 2002 12:56:01 -0000 1.2
+++ HeaderTokenType.cs 8 Oct 2002 04:39:33 -0000 1.3
@@ -12,9 +12,9 @@
{
public enum HeaderTokenType
{
- NotSet,
Atom,
Comment,
+ Delimiter,
EOF,
QuotedString,
Undefined
Index: HeaderTokenizer.cs
===================================================================
RCS file: /cvsroot/csmail/csmail/src/CSMail.Utils/HeaderTokenizer.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- HeaderTokenizer.cs 7 Oct 2002 12:56:01 -0000 1.2
+++ HeaderTokenizer.cs 8 Oct 2002 04:39:33 -0000 1.3
@@ -54,14 +54,17 @@
public HeaderToken Peek()
{
- throw new NotImplementedException();
+ currentPosition = nextPosition;
+ HeaderToken retVal = GetNextToken();
+ peekPosition = currentPosition;
+ return retVal;
}
public string Remainder
{
get
{
- throw new NotImplementedException();
+ return content.Substring(nextPosition);
}
}
@@ -90,10 +93,11 @@
bool waitNext = false;
char c;
+ int start = 0;
for( c = content[currentPosition]; c == '('; c = content[currentPosition])
{
currentPosition++;
- int start = currentPosition;
+ start = currentPosition;
int braceBalance;
for(braceBalance = 1;
braceBalance > 0 && currentPosition < maximumPosition;
@@ -138,7 +142,7 @@
if(c == '"')
{
- int start = ++currentPosition;
+ start = ++currentPosition;
while(currentPosition < maximumPosition)
{
c = content[currentPosition];
@@ -170,14 +174,28 @@
}
throw new ParseException("[HeaderTokenizer] Unbalanced quoted string");
}
- /*
- if(c < ' ' || c >= '\177' || delimiters.IndexOf(c) >= 0)
+
+ if(c < ' ' || c >= (char)0xB1 || delimiters.IndexOf(c) >= 0)
{
currentPosition ++;
- char[] ac =
+ char[] rv = new char[1];
+ rv[0] = c;
+ HeaderTokenType htType = HeaderTokenType.Undefined;
+ if(defimiters.IndexOf(c) >= 0)
+ htType = HeaderTokenType.Delimiter;
+ return new HeaderToken(htType, new string(rv));
+ }
+
+ start = currentPosition;
+ while(currentPosition < maximumPosition)
+ {
+ c = content[currentPosition];
+ if(c <= ' ' || c >= (char)0xB1 || c == '(' || c == '"' || delimiters.IndexOf(c) >= 0)
+ break;
+ currentPosition++;
}
- */
- throw new NotImplementedException();
+ return new HeaderToken(HeaderTokenType.Atom,
+ content.Substring(start, currentPosition - start));
}
private int SkipWhiteSpace()
|