예제 #1
0
 public static bool IsVoid(ITypeSpecifierNode specifier)
 {
     if (specifier is TypeSpecifierNode parsedSpecifier)
     {
         return(IsVoid(parsedSpecifier.Type));
     }
     return(false);
 }
예제 #2
0
 public static IType?GetTypeFromSpecifier(ITypeSpecifierNode specifierNode)
 {
     if (specifierNode is TypeSpecifierNode parsedSpecifier)
     {
         return(parsedSpecifier.Type);
     }
     return(null);
 }
예제 #3
0
 public FunctionDefinitionNode(
     string name,
     ITypeSpecifierNode returnType,
     IEnumerable <DeclarationNode> parameters,
     BodyNode body,
     bool isExported,
     bool isDrop)
 {
     Name       = name;
     ReturnType = returnType;
     Parameters = parameters.ToArray();
     Body       = body;
     IsExported = isExported;
     IsDrop     = isDrop;
 }
예제 #4
0
        private bool IsBorrowPointer(ITypeSpecifierNode node)
        {
            if (!(node is TypeSpecifierNode typeSpecifier))
            {
                return(false);
            }

            if (!(typeSpecifier.Type is IPointerType pointerType))
            {
                return(false);
            }

            if (pointerType.Mode != PointerMode.Borrowed)
            {
                return(false);
            }

            return(true);
        }
예제 #5
0
 public CastUnaryOpNode(ITypeSpecifierNode toType, IExpressionNode rhs) : base(rhs)
 {
     ToType = toType;
 }
예제 #6
0
 public DeclarationNode(ITypeSpecifierNode type, string name, IExpressionNode assignment)
 {
     Type       = type;
     Name       = name;
     Assignment = assignment;
 }