Author: olivier Date: 2007-09-06 02:13:17 -0400 (Thu, 06 Sep 2007) New Revision: 85390
Modified:
trunk/olive/class/Microsoft.JScript.Compiler/Microsoft.JScript.Compiler/ChangeLog
trunk/olive/class/Microsoft.JScript.Compiler/Microsoft.JScript.Compiler/TokenCategorizer.cs
Log:
2007-09-06 Olivier Dufour <[EMAIL PROTECTED]>
* TokenCategorizer.cs: Implement ReadToken and start to do unit test on
it
Modified:
trunk/olive/class/Microsoft.JScript.Compiler/Microsoft.JScript.Compiler/ChangeLog
===================================================================
---
trunk/olive/class/Microsoft.JScript.Compiler/Microsoft.JScript.Compiler/ChangeLog
2007-09-06 05:18:18 UTC (rev 85389)
+++
trunk/olive/class/Microsoft.JScript.Compiler/Microsoft.JScript.Compiler/ChangeLog
2007-09-06 06:13:17 UTC (rev 85390)
@@ -1,3 +1,7 @@
+2007-09-06 Olivier Dufour <[EMAIL PROTECTED]>
+
+ * TokenCategorizer.cs: Implment ReadToken and start to do unit test on
it
+
2007-08-25 Olivier Dufour <[EMAIL PROTECTED]>
* RowanGenerator.cs: code quite all statement things.
Modified:
trunk/olive/class/Microsoft.JScript.Compiler/Microsoft.JScript.Compiler/TokenCategorizer.cs
===================================================================
---
trunk/olive/class/Microsoft.JScript.Compiler/Microsoft.JScript.Compiler/TokenCategorizer.cs
2007-09-06 05:18:18 UTC (rev 85389)
+++
trunk/olive/class/Microsoft.JScript.Compiler/Microsoft.JScript.Compiler/TokenCategorizer.cs
2007-09-06 06:13:17 UTC (rev 85390)
@@ -61,149 +61,161 @@
return new TokenInfo (span, category, trigger);
}
- [MonoTODO]
private TokenCategory GetCategory(Token.Type type)
{
- throw new NotImplementedException ();
- /*switch (type) {
- case Token.Type.None:
- case Token.Type.EndOfInput:
- case Token.Type.LeftBrace:
- case Token.Type.RightBrace:
- case Token.Type.LeftParenthesis:
- case Token.Type.RightParenthesis:
- case Token.Type.LeftBracket:
- case Token.Type.RightBracket:
- case Token.Type.Dot:
- case Token.Type.Semicolon:
- case Token.Type.Comma:
- case Token.Type.Less:
- case Token.Type.Greater:
- case Token.Type.LessEqual:
- case Token.Type.GreaterEqual:
- case Token.Type.EqualEqual:
- case Token.Type.BangEqual:
- case Token.Type.EqualEqualEqual:
- case Token.Type.BangEqualEqual:
- case Token.Type.Plus:
- case Token.Type.Minus:
- case Token.Type.Star:
- case Token.Type.Percent:
- case Token.Type.PlusPlus:
- case Token.Type.MinusMinus:
- case Token.Type.LessLess:
- case Token.Type.GreaterGreater:
- case Token.Type.GreaterGreaterGreater:
- case Token.Type.Ampersand:
- case Token.Type.Bar:
- case Token.Type.Circumflex:
- case Token.Type.Bang:
- case Token.Type.Tilda:
- case Token.Type.AmpersandAmpersand:
- case Token.Type.BarBar:
- case Token.Type.Question:
- case Token.Type.Colon:
- case Token.Type.Equal:
- case Token.Type.PlusEqual:
- case Token.Type.MinusEqual:
- case Token.Type.StarEqual:
- case Token.Type.PercentEqual:
- case Token.Type.LessLessEqual:
- case Token.Type.GreaterGreaterEqual:
- case Token.Type.GreaterGreaterGreaterEqual:
- case Token.Type.AmpersandEqual:
- case Token.Type.BarEqual:
- case Token.Type.CircumflexEqual:
- case Token.Type.Divide:
+ switch (type) {
+ case Token.Type.None:
+ return TokenCategory.None;
+ case Token.Type.EndOfInput:
+ return TokenCategory.EndOfStream;
+ case Token.Type.LeftBrace:
+ case Token.Type.RightBrace:
+ case Token.Type.LeftParenthesis:
+ case Token.Type.RightParenthesis:
+ case Token.Type.LeftBracket:
+ case Token.Type.RightBracket:
+ case Token.Type.Dot:
+ case Token.Type.Semicolon:
+ case Token.Type.Comma:
+ return TokenCategory.Delimiter;
+ case Token.Type.Less:
+ case Token.Type.Greater:
+ case Token.Type.LessEqual:
+ case Token.Type.GreaterEqual:
+ case Token.Type.EqualEqual:
+ case Token.Type.BangEqual:
+ case Token.Type.EqualEqualEqual:
+ case Token.Type.BangEqualEqual:
+ case Token.Type.Plus:
+ case Token.Type.Minus:
+ case Token.Type.Star:
+ case Token.Type.Percent:
+ case Token.Type.PlusPlus:
+ case Token.Type.MinusMinus:
+ case Token.Type.LessLess:
+ case Token.Type.GreaterGreater:
+ case Token.Type.GreaterGreaterGreater:
+ case Token.Type.Ampersand:
+ case Token.Type.Bar:
+ case Token.Type.Circumflex:
+ case Token.Type.Bang:
+ case Token.Type.Tilda:
+ case Token.Type.AmpersandAmpersand:
+ case Token.Type.BarBar:
+ case Token.Type.Question:
+ case Token.Type.Colon:
+ case Token.Type.Equal:
+ case Token.Type.PlusEqual:
+ case Token.Type.MinusEqual:
+ case Token.Type.StarEqual:
+ case Token.Type.PercentEqual:
+ case Token.Type.LessLessEqual:
+ case Token.Type.GreaterGreaterEqual:
+ case Token.Type.GreaterGreaterGreaterEqual:
+ case Token.Type.AmpersandEqual:
+ case Token.Type.BarEqual:
+ case Token.Type.CircumflexEqual:
+ case Token.Type.Divide:
case Token.Type.DivideEqual:
+ return TokenCategory.Operator;
case [EMAIL PROTECTED]:
case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case Token.Type.var:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case Token.Type.function:
- case [EMAIL PROTECTED]:
- case Token.Type.with:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case Token.Type.delete:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case Token.Type.instanceof:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case Token.Type.boolean:
- case Token.Type.export:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case Token.Type.extends:
- case [EMAIL PROTECTED]:
- case Token.Type.super:
- case [EMAIL PROTECTED]:
- case Token.Type.final:
- case Token.Type.native:
- case Token.Type.synchronized:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case Token.Type.packate:
- case Token.Type.throws:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case Token.Type.transient:
- case Token.Type.debugger:
- case Token.Type.implements:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case Token.Type.import:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case [EMAIL PROTECTED]:
- case Token.Type.NumericLiteral:
- case Token.Type.HexIntegerLiteral:
- case Token.Type.OctalIntegerLiteral:
- case Token.Type.StringLiteral:
- case Token.Type.RegularExpressionLiteral:
- case Token.Type.Identifier:
- case Token.Type.Bad:
+ case [EMAIL PROTECTED]:
+ case Token.Type.var:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case Token.Type.function:
+ case [EMAIL PROTECTED]:
+ case Token.Type.with:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case Token.Type.delete:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case Token.Type.instanceof:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case Token.Type.boolean:
+ case Token.Type.export:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case Token.Type.extends:
+ case [EMAIL PROTECTED]:
+ case Token.Type.super:
+ case [EMAIL PROTECTED]:
+ case Token.Type.final:
+ case Token.Type.native:
+ case Token.Type.synchronized:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case Token.Type.packate:
+ case Token.Type.throws:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case Token.Type.transient:
+ case Token.Type.debugger:
+ case Token.Type.implements:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case Token.Type.import:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ case [EMAIL PROTECTED]:
+ return TokenCategory.Keyword;
+ case Token.Type.HexIntegerLiteral:
+ case Token.Type.OctalIntegerLiteral:
+ case Token.Type.NumericLiteral:
+ return TokenCategory.NumericLiteral;
+ case Token.Type.StringLiteral:
+ return TokenCategory.StringLiteral;
+ case Token.Type.RegularExpressionLiteral:
+ return
TokenCategory.RegularExpressionLiteral;
+ case Token.Type.Identifier:
+ return TokenCategory.Identifier;
+ case Token.Type.Bad:
+ return TokenCategory.Error;
case Token.Type.Comment:
return TokenCategory.Comment;
}
- return TokenCategory.Comment;*/
+ return TokenCategory.None;
}
- [MonoTODO]
private TokenTriggers GetTrigger(Token.Type type)
{
- throw new NotImplementedException ();
- /*switch (type) {
- case Token.Type.None:
- case Token.Type.EndOfInput:
+ switch (type) {
case Token.Type.LeftBrace:
case Token.Type.RightBrace:
+ case Token.Type.LeftBracket:
+ case Token.Type.RightBracket:
+ return TokenTriggers.MatchBraces;
case Token.Type.LeftParenthesis:
+ return TokenTriggers.MatchBraces |
TokenTriggers.ParameterStart;
case Token.Type.RightParenthesis:
- case Token.Type.LeftBracket:
- case Token.Type.RightBracket:
+ return TokenTriggers.MatchBraces |
TokenTriggers.ParameterEnd ;
case Token.Type.Dot:
+ return TokenTriggers.MemberSelect;
+ case Token.Type.Comma:
+ return TokenTriggers.ParameterNext;
+ //TODO : not found wher e we can use
TokenTriggers.Parameter
+ case Token.Type.None:
+ case Token.Type.EndOfInput:
case Token.Type.Semicolon:
- case Token.Type.Comma:
case Token.Type.Less:
case Token.Type.Greater:
case Token.Type.LessEqual:
@@ -310,9 +322,9 @@
case Token.Type.Identifier:
case Token.Type.Bad:
case Token.Type.Comment:
- return TokenTriggers.MatchBraces;
+ return TokenTriggers.None;
}
- return TokenTriggers.MatchBraces;*/
+ return TokenTriggers.None;
}
public override IEnumerable<TokenInfo> ReadTokens(int
countOfChars)
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches
