override public object Clone() { SpliceTypeMember clone = (SpliceTypeMember)FormatterServices.GetUninitializedObject(typeof(SpliceTypeMember)); clone._lexicalInfo = _lexicalInfo; clone._endSourceLocation = _endSourceLocation; clone._documentation = _documentation; clone._entity = _entity; if (_annotations != null) { clone._annotations = (Hashtable)_annotations.Clone(); } clone._modifiers = _modifiers; clone._name = _name; if (null != _attributes) { clone._attributes = _attributes.Clone() as AttributeCollection; clone._attributes.InitializeParent(clone); } if (null != _typeMember) { clone._typeMember = _typeMember.Clone() as TypeMember; clone._typeMember.InitializeParent(clone); } if (null != _nameExpression) { clone._nameExpression = _nameExpression.Clone() as Expression; clone._nameExpression.InitializeParent(clone); } return(clone); }
public override void OnSpliceTypeMember(SpliceTypeMember node) { MethodInvocationExpression ctor = (MethodInvocationExpression)Serialize(node.TypeMember); SpliceName(ctor, node.NameExpression); Push(ctor); }
public override void OnSpliceTypeMember(SpliceTypeMember node) { if (InsideSerializedQuasiquote()) { SerializeSpliceTypeMember(node); return; } var ctor = (MethodInvocationExpression)Serialize(node.TypeMember); SpliceName(ctor, node.NameExpression); Push(ctor); }
protected void field_or_property( TypeMemberCollection container ) //throws RecognitionException, TokenStreamException { IToken id1 = null; IToken begin1 = null; IToken s = null; IToken lparen = null; IToken id2 = null; IToken begin2 = null; IToken id = null; TypeMember tm = null; TypeReference tr = null; Property p = null; Field field = null; ExplicitMemberInfo emi = null; Expression initializer = null; ParameterDeclarationCollection parameters = null; Expression nameSplice = null; try { // for error handling { bool synPredMatched156 = false; if (((LA(1)==SELF||LA(1)==ID||LA(1)==SPLICE_BEGIN) && (tokenSet_34_.member(LA(2))))) { int _m156 = mark(); synPredMatched156 = true; inputState.guessing++; try { { property_header(); } } catch (RecognitionException) { synPredMatched156 = false; } rewind(_m156); inputState.guessing--; } if ( synPredMatched156 ) { { { if ((LA(1)==ID) && (LA(2)==DOT)) { emi=explicit_member_info(); } else if ((LA(1)==SELF||LA(1)==ID||LA(1)==SPLICE_BEGIN) && (tokenSet_34_.member(LA(2)))) { } else { throw new NoViableAltException(LT(1), getFilename()); } } { switch ( LA(1) ) { case ID: { id1 = LT(1); match(ID); if (0==inputState.guessing) { id=id1; } break; } case SPLICE_BEGIN: { begin1 = LT(1); match(SPLICE_BEGIN); nameSplice=atom(); if (0==inputState.guessing) { id=begin1; } break; } case SELF: { s = LT(1); match(SELF); if (0==inputState.guessing) { id=s; } break; } default: { throw new NoViableAltException(LT(1), getFilename()); } } } { if (0==inputState.guessing) { if (emi != null) p = new Property(emi.LexicalInfo); else p = new Property(ToLexicalInfo(id)); p.Name = id.getText(); p.ExplicitInfo = emi; AddAttributes(p.Attributes); parameters = p.Parameters; tm = p; } { switch ( LA(1) ) { case LPAREN: { { lparen = LT(1); match(LPAREN); parameter_declaration_list(parameters); match(RPAREN); if (0==inputState.guessing) { EmitIndexedPropertyDeprecationWarning(p); } } break; } case LBRACK: { { match(LBRACK); parameter_declaration_list(parameters); match(RBRACK); } break; } case AS: case COLON: { break; } default: { throw new NoViableAltException(LT(1), getFilename()); } } } { switch ( LA(1) ) { case AS: { match(AS); tr=type_reference(); break; } case COLON: { break; } default: { throw new NoViableAltException(LT(1), getFilename()); } } } if (0==inputState.guessing) { p.Type = tr; p.Modifiers = _modifiers; } begin_with_doc(p); { // ( ... )+ int _cnt166=0; for (;;) { if ((tokenSet_56_.member(LA(1)))) { property_accessor(p); } else { if (_cnt166 >= 1) { goto _loop166_breakloop; } else { throw new NoViableAltException(LT(1), getFilename());; } } _cnt166++; } _loop166_breakloop: ; } // ( ... )+ end(p); } } } else { bool synPredMatched169 = false; if (((LA(1)==THEN||LA(1)==ID) && (tokenSet_4_.member(LA(2))))) { int _m169 = mark(); synPredMatched169 = true; inputState.guessing++; try { { macro_name(); expression_list(null); { switch ( LA(1) ) { case EOL: case EOS: { eos(); break; } case COLON: { begin_with_doc(null); break; } default: { throw new NoViableAltException(LT(1), getFilename()); } } } } } catch (RecognitionException) { synPredMatched169 = false; } rewind(_m169); inputState.guessing--; } if ( synPredMatched169 ) { tm=member_macro(); } else if ((LA(1)==ID||LA(1)==SPLICE_BEGIN) && (tokenSet_57_.member(LA(2)))) { { { switch ( LA(1) ) { case ID: { id2 = LT(1); match(ID); break; } case SPLICE_BEGIN: { begin2 = LT(1); match(SPLICE_BEGIN); nameSplice=atom(); break; } default: { throw new NoViableAltException(LT(1), getFilename()); } } } if (0==inputState.guessing) { IToken token = id2 ?? begin2; field = new Field(ToLexicalInfo(token)); field.Name = token.getText(); field.Modifiers = _modifiers; AddAttributes(field.Attributes); tm = field; } { { switch ( LA(1) ) { case AS: { match(AS); tr=type_reference(); if (0==inputState.guessing) { field.Type = tr; } break; } case EOL: case EOS: case ASSIGN: { break; } default: { throw new NoViableAltException(LT(1), getFilename()); } } } { switch ( LA(1) ) { case ASSIGN: { { match(ASSIGN); initializer=declaration_initializer(); if (0==inputState.guessing) { field.Initializer = initializer; } } break; } case EOL: case EOS: { eos(); break; } default: { throw new NoViableAltException(LT(1), getFilename()); } } } docstring(field); } } } else { throw new NoViableAltException(LT(1), getFilename()); } } } if (0==inputState.guessing) { if (null != nameSplice) { tm = new SpliceTypeMember(tm, nameSplice); } container.Add(tm); } } catch (RecognitionException ex) { if (0 == inputState.guessing) { reportError(ex, "field_or_property"); recover(ex,tokenSet_55_); } else { throw ex; } } }
protected void method( TypeMemberCollection container ) //throws RecognitionException, TokenStreamException { IToken t = null; IToken spliceBegin = null; IToken c = null; IToken d = null; IToken cc = null; IToken dd = null; Method m = null; TypeReference rt = null; TypeReference it = null; ExplicitMemberInfo emi = null; ParameterDeclarationCollection parameters = null; GenericParameterDeclarationCollection genericParameters = null; Block body = null; StatementCollection statements = null; Expression nameSplice = null; TypeMember typeMember = null; IToken id = null; try { // for error handling { switch ( LA(1) ) { case DEF: { t = LT(1); match(DEF); { switch ( LA(1) ) { case EVENT: case GET: case INTERNAL: case PUBLIC: case PROTECTED: case REF: case SET: case YIELD: case ID: case SPLICE_BEGIN: { { { { if ((LA(1)==ID) && (LA(2)==DOT)) { emi=explicit_member_info(); } else if ((tokenSet_33_.member(LA(1))) && (tokenSet_34_.member(LA(2)))) { } else { throw new NoViableAltException(LT(1), getFilename()); } } { switch ( LA(1) ) { case EVENT: case GET: case INTERNAL: case PUBLIC: case PROTECTED: case REF: case SET: case YIELD: case ID: { id=member(); break; } case SPLICE_BEGIN: { spliceBegin = LT(1); match(SPLICE_BEGIN); nameSplice=atom(); break; } default: { throw new NoViableAltException(LT(1), getFilename()); } } } } if (0==inputState.guessing) { IToken token = id ?? spliceBegin; if (emi != null) { m = new Method(emi.LexicalInfo); } else { m = new Method(ToLexicalInfo(token)); } m.Name = token.getText(); m.ExplicitInfo = emi; if (nameSplice != null) { typeMember = new SpliceTypeMember(m, nameSplice); } else { typeMember = m; } } } break; } case CONSTRUCTOR: { c = LT(1); match(CONSTRUCTOR); if (0==inputState.guessing) { typeMember = m = new Constructor(ToLexicalInfo(c)); } break; } case DESTRUCTOR: { d = LT(1); match(DESTRUCTOR); if (0==inputState.guessing) { typeMember = m = new Destructor(ToLexicalInfo(d)); } break; } default: { throw new NoViableAltException(LT(1), getFilename()); } } } break; } case CONSTRUCTOR: { cc = LT(1); match(CONSTRUCTOR); if (0==inputState.guessing) { typeMember = m = new Constructor(ToLexicalInfo(cc)); } break; } case DESTRUCTOR: { dd = LT(1); match(DESTRUCTOR); if (0==inputState.guessing) { typeMember = m = new Destructor(ToLexicalInfo(dd)); } break; } default: { throw new NoViableAltException(LT(1), getFilename()); } } } if (0==inputState.guessing) { m.Modifiers = _modifiers; AddAttributes(m.Attributes); parameters = m.Parameters; genericParameters = m.GenericParameters; body = m.Body; statements = body.Statements; } { if ((LA(1)==LBRACK) && (LA(2)==OF||LA(2)==ID)) { match(LBRACK); { switch ( LA(1) ) { case OF: { match(OF); break; } case ID: { break; } default: { throw new NoViableAltException(LT(1), getFilename()); } } } generic_parameter_declaration_list(genericParameters); match(RBRACK); } else if ((tokenSet_35_.member(LA(1))) && (tokenSet_36_.member(LA(2)))) { } else { throw new NoViableAltException(LT(1), getFilename()); } } { switch ( LA(1) ) { case LPAREN: { match(LPAREN); parameter_declaration_list(parameters); match(RPAREN); break; } case AS: case LBRACK: case COLON: { break; } default: { throw new NoViableAltException(LT(1), getFilename()); } } } attributes(); if (0==inputState.guessing) { AddAttributes(m.ReturnTypeAttributes); } { switch ( LA(1) ) { case AS: { match(AS); rt=type_reference(); if (0==inputState.guessing) { m.ReturnType = rt; } break; } case COLON: { break; } default: { throw new NoViableAltException(LT(1), getFilename()); } } } begin_block_with_doc(m, body); block(statements); end(body); if (0==inputState.guessing) { container.Add(typeMember); m.EndSourceLocation = body.EndSourceLocation; } } catch (RecognitionException ex) { if (0 == inputState.guessing) { reportError(ex, "method"); recover(ex,tokenSet_22_); } else { throw ex; } } }
override public object Clone() { SpliceTypeMember clone = new SpliceTypeMember(); clone._lexicalInfo = _lexicalInfo; clone._endSourceLocation = _endSourceLocation; clone._documentation = _documentation; clone._isSynthetic = _isSynthetic; clone._entity = _entity; if (_annotations != null) clone._annotations = (Hashtable)_annotations.Clone(); clone._modifiers = _modifiers; clone._name = _name; if (null != _attributes) { clone._attributes = _attributes.Clone() as AttributeCollection; clone._attributes.InitializeParent(clone); } if (null != _typeMember) { clone._typeMember = _typeMember.Clone() as TypeMember; clone._typeMember.InitializeParent(clone); } if (null != _nameExpression) { clone._nameExpression = _nameExpression.Clone() as Expression; clone._nameExpression.InitializeParent(clone); } return clone; }