示例#1
0
        NamedTypeSymbol GetTypeFromTypeRef(PrimitiveTypeRef t)
        {
            switch (t.TypeCode)
            {
            case PhpTypeCode.Double: return(CoreTypes.Double);

            case PhpTypeCode.Long: return(CoreTypes.Long);

            case PhpTypeCode.Int32: return(CoreTypes.Int32);

            case PhpTypeCode.Boolean: return(CoreTypes.Boolean);

            case PhpTypeCode.String: return(CoreTypes.String);

            case PhpTypeCode.WritableString: return(CoreTypes.PhpString);

            case PhpTypeCode.PhpArray: return(CoreTypes.PhpArray);

            case PhpTypeCode.Callable: return(CoreTypes.PhpValue);      // array|object|string

            case PhpTypeCode.Resource: return(CoreTypes.PhpResource);

            case PhpTypeCode.Null: return(CoreTypes.Object);    // object // when merging, NULL must be handled specially (e.g. PhpValue|NULL -> PhpValue)

            default:
                throw new NotImplementedException();
            }
        }
示例#2
0
            //public override void VisitNamedActualParam(NamedActualParam x) {
            //    VisitSpecificElementProlog();

            //    SerializeToken(nameof(x.Name), x.Name.ToString(), null);

            //    base.VisitNamedActualParam(x);
            //}

            public override void VisitPrimitiveTypeRef(PrimitiveTypeRef x)
            {
                VisitSpecificElementProlog();

                SerializeToken(nameof(x.PrimitiveTypeName), x.PrimitiveTypeName.ToString(), x.Span);

                base.VisitPrimitiveTypeRef(x);
            }
示例#3
0
        NamedTypeSymbol GetTypeFromTypeRef(PrimitiveTypeRef t)
        {
            switch (t.TypeCode)
            {
            case PhpTypeCode.Double: return(CoreTypes.Double);

            case PhpTypeCode.Long: return(CoreTypes.Long);

            case PhpTypeCode.Int32: return(CoreTypes.Int32);

            case PhpTypeCode.Boolean: return(CoreTypes.Boolean);

            case PhpTypeCode.String: return(CoreTypes.String);

            case PhpTypeCode.WritableString: return(CoreTypes.PhpString);

            case PhpTypeCode.PhpArray: return(CoreTypes.PhpArray);

            case PhpTypeCode.Callable: return(CoreTypes.IPhpCallable);

            default:
                throw new NotImplementedException();
            }
        }
示例#4
0
 public override void VisitPrimitiveTypeRef(PrimitiveTypeRef x)
 {
     VisitQualifiedName(x.QualifiedName.Value);
 }
示例#5
0
 virtual public void VisitPrimitiveTypeRef(PrimitiveTypeRef x)
 {
     // nothing
 }
示例#6
0
 override public void VisitPrimitiveTypeRef(PrimitiveTypeRef x)
 {
     _serializer.Serialize(typeof(PrimitiveTypeRef).Name, SerializeSpan(x.Span),
                           new NodeObj("QualifiedName", x.QualifiedName.ToString()));
 }
示例#7
0
 /// <summary>
 /// Does not lookup existing types whether there is typeref already.
 /// </summary>
 private TypeRefMask GetPrimitiveTypeRefMaskNoCheck(PrimitiveTypeRef/*!*/typeref)
 {
     if (this.Types.Count < TypeRefMask.IndicesCount)
     {
         var index = AddToContextNoCheck(typeref);
         return TypeRefMask.CreateFromTypeIndex(index);
     }
     else
     {
         return TypeRefMask.AnyType;
     }
 }
示例#8
0
 private TypeRefMask GetPrimitiveTypeRefMask(PrimitiveTypeRef/*!*/typeref)
 {
     // primitive type cannot include subclasses
     var index = AddToContext(typeref);
     return TypeRefMask.CreateFromTypeIndex(index);
 }
示例#9
0
 public override void VisitPrimitiveTypeRef(PrimitiveTypeRef x)
 {
     _results.Push(new GenericQualifiedName(x.QualifiedName.Value));
 }