Browse Source

Fixed parser bug.

newNRvisualizers
Mike Krüger 15 years ago
parent
commit
daccb3a8d8
  1. 5
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/IdentifierExpression.cs
  2. 35
      ICSharpCode.NRefactory/CSharp/Parser/CSharpParser.cs

5
ICSharpCode.NRefactory/CSharp/Ast/Expressions/IdentifierExpression.cs

@ -38,6 +38,11 @@ namespace ICSharpCode.NRefactory.CSharp
this.Identifier = identifier; this.Identifier = identifier;
} }
public IdentifierExpression(string identifier, AstLocation location)
{
SetChildByRole(Roles.Identifier, new Identifier(identifier, location));
}
// public Identifier IdentifierToken { // public Identifier IdentifierToken {
// get { return GetChildByRole (Roles.Identifier); } // get { return GetChildByRole (Roles.Identifier); }
// } // }

35
ICSharpCode.NRefactory/CSharp/Parser/CSharpParser.cs

@ -1459,40 +1459,39 @@ namespace ICSharpCode.NRefactory.CSharp
public override object Visit (TypeExpression typeExpression) public override object Visit (TypeExpression typeExpression)
{ {
var result = new PrimitiveType (); string keyword;
result.Location = Convert (typeExpression.Location);
if (typeExpression.Type == TypeManager.void_type) { if (typeExpression.Type == TypeManager.void_type) {
result.Keyword = "void"; keyword = "void";
} else if (typeExpression.Type == TypeManager.string_type) { } else if (typeExpression.Type == TypeManager.string_type) {
result.Keyword = "string"; keyword = "string";
} else if (typeExpression.Type == TypeManager.int32_type) { } else if (typeExpression.Type == TypeManager.int32_type) {
result.Keyword = "int"; keyword = "int";
} else if (typeExpression.Type == TypeManager.object_type) { } else if (typeExpression.Type == TypeManager.object_type) {
result.Keyword = "object"; keyword = "object";
} else if (typeExpression.Type == TypeManager.float_type) { } else if (typeExpression.Type == TypeManager.float_type) {
result.Keyword = "float"; keyword = "float";
} else if (typeExpression.Type == TypeManager.double_type) { } else if (typeExpression.Type == TypeManager.double_type) {
result.Keyword = "double"; keyword = "double";
} else if (typeExpression.Type == TypeManager.int64_type) { } else if (typeExpression.Type == TypeManager.int64_type) {
result.Keyword = "long"; keyword = "long";
} else if (typeExpression.Type == TypeManager.byte_type) { } else if (typeExpression.Type == TypeManager.byte_type) {
result.Keyword = "byte"; keyword = "byte";
} else if (typeExpression.Type == TypeManager.uint32_type) { } else if (typeExpression.Type == TypeManager.uint32_type) {
result.Keyword = "uint"; keyword = "uint";
} else if (typeExpression.Type == TypeManager.uint64_type) { } else if (typeExpression.Type == TypeManager.uint64_type) {
result.Keyword = "ulong"; keyword = "ulong";
} else if (typeExpression.Type == TypeManager.short_type) { } else if (typeExpression.Type == TypeManager.short_type) {
result.Keyword = "short"; keyword = "short";
} else if (typeExpression.Type == TypeManager.ushort_type) { } else if (typeExpression.Type == TypeManager.ushort_type) {
result.Keyword = "ushort"; keyword = "ushort";
} else if (typeExpression.Type == TypeManager.sbyte_type) { } else if (typeExpression.Type == TypeManager.sbyte_type) {
result.Keyword = "sbyte"; keyword = "sbyte";
} else if (typeExpression.Type == TypeManager.decimal_type) { } else if (typeExpression.Type == TypeManager.decimal_type) {
result.Keyword = "decimal"; keyword = "decimal";
} else { } else {
throw new NotImplementedException(); keyword = "unknown";
} }
return result; return new IdentifierExpression (keyword, Convert (typeExpression.Location));
} }
public override object Visit (LocalVariableReference localVariableReference) public override object Visit (LocalVariableReference localVariableReference)

Loading…
Cancel
Save