コード例 #1
0
        public string ToPromela(int indent)
        {
            StringBuilder buf = new StringBuilder();

            buf.Append(Promela.Indent(indent));
            buf.Append("::");
            if (Condition != null)
            {
                buf.Append(" ").Append(Condition.ToPromela()).Append(" ->");
            }
            if (actions.Count == 1)
            {
                Statement a = actions[0];
                if (a != null && (a.Type == StatementType.SKIP || a.Type == StatementType.BREAK ||
                                  a.Type == StatementType.INCREMENT || a.Type == StatementType.GOTO || a.Type == StatementType.INLINE_CALL || a.Type == StatementType.ASSIGNMENT))
                {
                    buf.Append(" ").Append(a.ToPromela());
                    return(buf.ToString());
                }
            }

            int i = 0;

            if (i < actions.Count)
            {
                foreach (Statement action in actions)
                {
                    buf.Append(Promela.nl).Append(action.ToPromela(indent + 1));
                }
            }
            return(buf.ToString());
        }
コード例 #2
0
        public override string ToPromela(int indent)
        {
            StringBuilder buf = new StringBuilder();

            buf.Append(Promela.Indent(indent)).Append("init {").Append(nl);
            buf.Append(base.ToPromela(indent + 1));
            buf.Append(Promela.Indent(indent)).Append("}");
            return(buf.ToString());
        }
コード例 #3
0
        public override string ToPromela(int indent)
        {
            StringBuilder buf = new StringBuilder();

            buf.Append(Promela.Indent(indent));
            buf.Append("for(").Append(iterator).Append(": ").Append(lowBound.ToPromela()).Append(" .. ").Append(highBound.ToPromela()).Append(") {");
            buf.Append(nl).Append(base.ToPromela(indent + 1));
            buf.Append(Promela.Indent(indent)).Append("}");

            return(buf.ToString());
        }
コード例 #4
0
        public override string ToPromela(int indent)
        {
            StringBuilder buf = new StringBuilder();

            buf.Append(Promela.Indent(indent));
            buf.Append("do").Append(nl);
            foreach (Branch b in Branches)
            {
                buf.Append(b.ToPromela(indent + 1));
                buf.Append(nl);
            }
            buf.Append(Promela.Indent(indent));
            buf.Append("od;");
            return(buf.ToString());
        }
コード例 #5
0
        public override string ToPromela(int indent)
        {
            StringBuilder buf = new StringBuilder();

            buf.Append(Promela.Indent(indent));
            if (Type == StatementType.ATOMIC)
            {
                buf.Append("atomic {");
            }
            else
            {
                buf.Append("d_step {");
            }
            buf.Append(nl);
            buf.Append(base.ToPromela(indent + 1));
            buf.Append(Promela.Indent(indent)).Append("}");
            return(buf.ToString());
        }
コード例 #6
0
        public override string ToPromela(int indent)
        {
            StringBuilder buf = new StringBuilder();

            buf.Append(Promela.Indent(indent));
            buf.Append("inline ").Append(Name).Append("(");
            int i = 0;

            foreach (string p in Params)
            {
                buf.Append(p);
                i++;
                if (i < Params.Count)
                {
                    buf.Append(", ");
                }
            }
            buf.Append(") {").Append(nl);
            buf.Append(base.ToPromela(indent + 1));
            buf.Append(Promela.Indent(indent)).Append("}");
            return(buf.ToString());
        }
コード例 #7
0
        public override string ToPromela(int indent)
        {
            StringBuilder buf = new StringBuilder();

            buf.Append(Promela.Indent(indent));
            buf.Append("proctype ").Append(Name).Append("(");
            int count = parameters.Count;
            int i     = 1;

            foreach (ProcessParam var in parameters)
            {
                buf.Append(var.ToPromela());
                if (i++ < count)
                {
                    buf.Append(", ");
                }
            }
            buf.Append(") {").Append(nl);
            buf.Append(base.ToPromela(indent + 1));
            buf.Append(Promela.Indent(indent));
            buf.Append("}");

            return(buf.ToString());
        }
コード例 #8
0
 public override string ToPromela(int indent)
 {
     return(Promela.Indent(indent) + ToPromela());
 }
コード例 #9
0
 public string ToPromela(int indent)
 {
     return(Promela.Indent(indent) + this.ToPromela());
 }