IEnumerable <FieldSymbol> LoadFields() { var binder = new SemanticsBinder(null); // fields foreach (var flist in _syntax.Members.OfType <FieldDeclList>()) { var fkind = (flist.Modifiers & PhpMemberAttributes.Static) == 0 ? SourceFieldSymbol.KindEnum.InstanceField : SourceFieldSymbol.KindEnum.StaticField; foreach (var f in flist.Fields) { yield return(new SourceFieldSymbol(this, f.Name.Value, flist.Modifiers.GetAccessibility(), f.PHPDoc ?? flist.PHPDoc, fkind, (f.Initializer != null) ? binder.BindExpression(f.Initializer, BoundAccess.Read) : null)); } } // constants foreach (var clist in _syntax.Members.OfType <ConstDeclList>()) { foreach (var c in clist.Constants) { yield return(new SourceFieldSymbol(this, c.Name.Name.Value, Accessibility.Public, c.PHPDoc ?? clist.PHPDoc, SourceFieldSymbol.KindEnum.ClassConstant, binder.BindExpression(c.Initializer, BoundAccess.Read))); } } }
private CaseBlock /*!*/ NewBlock(SwitchItem item) { var caseitem = item as CaseItem; BoundExpression caseValue = // null => DefaultItem (caseitem != null) ? _binder.BindExpression(caseitem.CaseVal, BoundAccess.Read) : null; return(WithNewOrdinal(new CaseBlock(caseValue) { PhpSyntax = item, Naming = _naming })); }