示例#1
0
        public Method(string name, string[] argNames, Statement[] statements)
        {
            Contract.Requires(!string.IsNullOrEmpty(name), "name is null or empty");
            Contract.Requires(argNames != null, "argNames is null");
            Contract.Requires(statements != null, "statements is null");

            Name = name;
            m_argNames = argNames;
            m_statements = statements;
        }
示例#2
0
        public For(int line, string local, Expression elements, Expression filter, Statement[] block)
            : base(line)
        {
            Contract.Requires(!string.IsNullOrEmpty(local), "local is null or null");
            Contract.Requires(elements != null, "elements is null");
            Contract.Requires(block != null, "block is null");

            m_local = local;
            m_elements = elements;
            m_filter = filter;
            m_block = block;
        }
示例#3
0
        public Let(int line, string[] locals, Expression[] values, Statement[] block)
            : base(line)
        {
            Contract.Requires(locals != null, "locals is null");
            Contract.Requires(values != null, "value is null");
            Contract.Requires(locals.Length == values.Length, "lengths don't match");
            Contract.Requires(block != null, "block is null");

            m_locals = locals;
            m_values = values;
            m_block = block;
        }
示例#4
0
        public Conditional(int line, Expression[] predicates, Statement[][] blocks)
            : base(line)
        {
            Contract.Requires(predicates != null, "predicates is null");
            Contract.Requires(blocks != null, "blocks is null");
            Contract.Requires(predicates.Length == blocks.Length, "lengths differ");

            m_predicates = predicates;
            m_blocks = blocks;
        }