public Method AddFunctionTo(TypeDefinition type, IToken nameToken, IToken getter, IToken setter) { Method method; string name = nameToken.getText(); LexicalInfo info = ToLexicalInfo(nameToken); Method method1 = method = new Method(info); method.set_Name(name); Method node = !IsConstructorName(name, type) ? method : new Constructor(info); if ((getter != null) || (setter != null)) { Property property = type.get_Members().get_Item(name) as Property; if (property == null) { Property property2; Property property1 = property2 = new Property(info); property2.set_Name(name); property = property2; type.get_Members().Add(property); } if (getter != null) { if (property.get_Getter() != null) { throw new AssertionFailedException("p.Getter is null"); } property.set_Getter(node); } else { if (property.get_Setter() != null) { throw new AssertionFailedException("p.Setter is null"); } property.set_Setter(node); } this.FlushAttributes(property); return node; } type.get_Members().Add(node); this.FlushAttributes(node); return node; }
public TypeMember interface_declaration(TypeDefinition parent) { TypeMember member = null; IToken token = null; IToken token2 = null; try { InterfaceDefinition definition2; TypeReferenceCollection references; this.match(0x19); token = this.LT(1); this.match(0x3b); if (base.inputState.guessing == 0) { InterfaceDefinition definition; InterfaceDefinition definition1 = definition = new InterfaceDefinition(ToLexicalInfo(token)); definition.set_Name(token.getText()); member = definition2 = definition; references = definition2.get_BaseTypes(); this.FlushAttributes(definition2); parent.get_Members().Add(definition2); } switch (this.LA(1)) { case 14: this.match(14); this.type_reference_list(references); break; case 0x3d: break; default: throw new NoViableAltException(this.LT(1), this.getFilename()); } this.match(0x3d); while (true) { if ((this.LA(1) != 0x13) && (this.LA(1) != 0x63)) { break; } switch (this.LA(1)) { case 0x63: this.attributes(); break; case 0x13: break; default: throw new NoViableAltException(this.LT(1), this.getFilename()); } this.interface_member(definition2); } token2 = this.LT(1); this.match(0x3e); if (base.inputState.guessing == 0) { SetEndSourceLocation(definition2, token2); } while ((this.LA(1) == 0x4d) && tokenSet_33_.member(this.LA(2))) { this.match(0x4d); } return member; } catch (RecognitionException exception) { if (base.inputState.guessing != 0) { throw; } this.reportError(exception); this.recover(exception, tokenSet_33_); return member; } return member; }
public TypeMember enum_declaration(TypeDefinition container) { TypeMember node = null; IToken token = null; IToken token2 = null; try { EnumDefinition definition2; this.match(13); token = this.LT(1); this.match(0x3b); if (base.inputState.guessing == 0) { EnumDefinition definition; EnumDefinition definition1 = definition = new EnumDefinition(ToLexicalInfo(token)); definition.set_Name(token.getText()); node = definition2 = definition; this.FlushAttributes(node); container.get_Members().Add(definition2); } this.match(0x3d); switch (this.LA(1)) { case 12: case 0x10: case 0x21: case 0x3b: case 0x63: this.enum_member(definition2); while ((this.LA(1) == 0x43) && tokenSet_34_.member(this.LA(2))) { this.match(0x43); this.enum_member(definition2); } switch (this.LA(1)) { case 0x43: this.match(0x43); goto Label_015B; } throw new NoViableAltException(this.LT(1), this.getFilename()); case 0x3e: break; default: throw new NoViableAltException(this.LT(1), this.getFilename()); } Label_015B: token2 = this.LT(1); this.match(0x3e); if (base.inputState.guessing == 0) { SetEndSourceLocation(definition2, token2); } while ((this.LA(1) == 0x4d) && tokenSet_33_.member(this.LA(2))) { this.match(0x4d); } return node; } catch (RecognitionException exception) { if (base.inputState.guessing != 0) { throw; } this.reportError(exception); this.recover(exception, tokenSet_33_); return node; } return node; }
public TypeMember field_member(TypeDefinition cd) { TypeMember node = null; try { TypeReference reference; Expression expression; Field field; this.match(0x2d); IToken token = this.identifier(); switch (this.LA(1)) { case 0x42: this.match(0x42); reference = this.type_reference(); break; case 1: case 5: case 8: case 9: case 10: case 12: case 13: case 15: case 0x10: case 0x12: case 0x13: case 20: case 0x15: case 0x19: case 0x1b: case 0x1d: case 30: case 0x1f: case 0x20: case 0x21: case 0x22: case 0x23: case 0x24: case 0x25: case 0x26: case 0x27: case 40: case 0x29: case 0x2a: case 0x2b: case 0x2c: case 0x2d: case 0x2e: case 0x2f: case 0x30: case 0x31: case 0x3b: case 60: case 0x3d: case 0x3e: case 0x3f: case 0x44: case 0x4d: case 0x4e: case 0x4f: case 80: case 0x52: case 0x58: case 0x63: case 0x67: case 0x69: case 0x6a: case 0x6b: case 0x6c: case 0x6d: break; default: throw new NoViableAltException(this.LT(1), this.getFilename()); } switch (this.LA(1)) { case 0x4e: this.match(0x4e); expression = this.expression(); break; case 1: case 5: case 8: case 9: case 10: case 12: case 13: case 15: case 0x10: case 0x12: case 0x13: case 20: case 0x15: case 0x19: case 0x1b: case 0x1d: case 30: case 0x1f: case 0x20: case 0x21: case 0x22: case 0x23: case 0x24: case 0x25: case 0x26: case 0x27: case 40: case 0x29: case 0x2a: case 0x2b: case 0x2c: case 0x2d: case 0x2e: case 0x2f: case 0x30: case 0x31: case 0x3b: case 60: case 0x3d: case 0x3e: case 0x3f: case 0x44: case 0x4d: case 0x4f: case 80: case 0x52: case 0x58: case 0x63: case 0x67: case 0x69: case 0x6a: case 0x6b: case 0x6c: case 0x6d: break; default: throw new NoViableAltException(this.LT(1), this.getFilename()); } IToken token2 = this.eos(); if (base.inputState.guessing != 0) { return node; } Field field1 = field = new Field(ToLexicalInfo(token)); field.set_Name(token.getText()); field.set_Type(reference); field.set_Initializer(expression); node = field; if (token2 != null) { SetEndSourceLocation(node, token2); } this.FlushAttributes(node); cd.get_Members().Add(node); } catch (RecognitionException exception) { if (base.inputState.guessing != 0) { throw; } this.reportError(exception); this.recover(exception, tokenSet_33_); return node; } return node; }
public TypeMember class_declaration(TypeDefinition parent) { TypeMember member = null; IToken token = null; IToken token2 = null; IToken token3 = null; try { TypeReference reference; ClassDefinition definition2; TypeReferenceCollection references; switch (this.LA(1)) { case 0x23: token = this.LT(1); this.match(0x23); break; case 8: break; default: throw new NoViableAltException(this.LT(1), this.getFilename()); } this.match(8); token2 = this.LT(1); this.match(0x3b); switch (this.LA(1)) { case 14: this.match(14); reference = this.type_reference(); break; case 0x17: case 0x3d: break; default: throw new NoViableAltException(this.LT(1), this.getFilename()); } if (base.inputState.guessing == 0) { ClassDefinition definition; ClassDefinition definition1 = definition = new ClassDefinition(ToLexicalInfo(token2)); definition.set_Name(token2.getText()); member = definition2 = definition; references = definition2.get_BaseTypes(); if (reference != null) { references.Add(reference); } if (token != null) { definition2.set_Modifiers(definition2.get_Modifiers() | 0x400); } this.FlushAttributes(definition2); parent.get_Members().Add(definition2); } switch (this.LA(1)) { case 0x17: this.match(0x17); this.type_reference_list(references); break; case 0x3d: break; default: throw new NoViableAltException(this.LT(1), this.getFilename()); } if (base.inputState.guessing == 0) { foreach (TypeReference reference2 in references) { if (reference2 == reference) { BaseTypeAnnotations.AnnotateExtends(reference2); } else { BaseTypeAnnotations.AnnotateImplements(reference2); } } } this.match(0x3d); while (true) { TypeMemberModifiers modifiers; TypeMember member2; if (!tokenSet_29_.member(this.LA(1))) { break; } if (base.inputState.guessing == 0) { modifiers = 0; } switch (this.LA(1)) { case 0x63: this.attributes(); break; case 8: case 13: case 0x10: case 0x13: case 0x19: case 0x1b: case 0x1f: case 0x20: case 0x21: case 0x22: case 0x23: case 0x24: case 0x26: case 0x2d: case 0x2e: break; default: throw new NoViableAltException(this.LT(1), this.getFilename()); } if (tokenSet_30_.member(this.LA(1)) && tokenSet_31_.member(this.LA(2))) { modifiers = this.member_modifiers(); } else if (!tokenSet_26_.member(this.LA(1)) || !tokenSet_32_.member(this.LA(2))) { throw new NoViableAltException(this.LT(1), this.getFilename()); } int num = this.LA(1); switch (num) { case 0x13: member2 = this.function_member(definition2); break; case 0x2d: member2 = this.field_member(definition2); break; case 13: member2 = this.enum_declaration(definition2); break; case 8: case 0x23: member2 = this.class_declaration(definition2); break; default: if (num != 0x19) { throw new NoViableAltException(this.LT(1), this.getFilename()); } member2 = this.interface_declaration(definition2); break; } if ((base.inputState.guessing == 0) && (member2 != null)) { member2.set_Modifiers(member2.get_Modifiers() | modifiers); } } token3 = this.LT(1); this.match(0x3e); if (base.inputState.guessing == 0) { SetEndSourceLocation(definition2, token3); } while ((this.LA(1) == 0x4d) && tokenSet_33_.member(this.LA(2))) { this.match(0x4d); } return member; } catch (RecognitionException exception) { if (base.inputState.guessing != 0) { throw; } this.reportError(exception); this.recover(exception, tokenSet_33_); return member; } return member; }