示例#1
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="name">El nom.</param>
        /// <param name="access">Especificador d'acces.</param>
        /// <param name="implementation">Implementacio.</param>
        /// <param name="valueType">El tipus del valor.</param>
        /// <param name="initializer">Expressio d'inicialitzacio.</param>
        ///
        public VariableDeclaration(string name, AccessSpecifier access, ImplementationSpecifier implementation, TypeIdentifier valueType, Expression initializer)
        {
            if (String.IsNullOrEmpty(name))
            {
                throw new ArgumentNullException(nameof(name));
            }

            Name           = name;
            Access         = access;
            Implementation = implementation;
            ValueType      = valueType;
            Initializer    = initializer;
        }
示例#2
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="name">El nom.</param>
        /// <param name="access">Especificador d'acces.</param>
        /// <param name="returnType">El tipus de retorn.</param>
        /// <param name="arguments">Llista d'arguments.</param>
        /// <param name="body">Les instruccions.</param>
        ///
        public FunctionDeclaration(string name, AccessSpecifier access, TypeIdentifier returnType, ArgumentDeclarationList arguments,
                                   Statement body)
        {
            if (String.IsNullOrEmpty(name))
            {
                throw new ArgumentNullException(nameof(name));
            }

            Name           = name;
            Access         = access;
            ReturnType     = returnType;
            this.arguments = arguments;
            Body           = body;
        }
示例#3
0
        public static TypeIdentifier FromName(string name)
        {
            TypeIdentifier t;

            if ((cache == null) || (!cache.TryGetValue(name, out t)))
            {
                t = new TypeIdentifier(name);

                if (cache == null)
                {
                    cache = new Dictionary <string, TypeIdentifier>();
                }

                cache.Add(name, t);
            }

            return(t);
        }
示例#4
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="name">El nom.</param>
 /// <param name="valueType">El tipus del valor.</param>
 ///
 public ArgumentDeclaration(string name, TypeIdentifier valueType)
 {
     Name      = name;
     ValueType = valueType;
 }
示例#5
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="name">El nom.</param>
 /// <param name="access">Especificador d'acces.</param>
 /// <param name="returnType">El tipus de retorn.</param>
 /// <param name="arguments">Llista d'arguments.</param>
 /// <param name="statements">La llista d'instruccions.</param>
 ///
 public FunctionDeclaration(string name, AccessSpecifier access, TypeIdentifier returnType, ArgumentDeclarationList arguments,
                            StatementList statements) :
     this(name, access, returnType, arguments, new BlockStatement(statements))
 {
 }
示例#6
0
 /// <summary>
 /// Constructor per defecte.
 /// </summary>
 ///
 public FunctionDeclaration()
 {
     Access         = AccessSpecifier.Default;
     Implementation = ImplementationSpecifier.Default;
     ReturnType     = TypeIdentifier.FromName("void");
 }