亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? bisimulation.java

?? 這是我們參加06年全國(guó)開(kāi)源軟件的競(jìng)賽作品
?? JAVA
字號(hào):
/*
Copyright (C) 1989, 1991 Free Software Foundation, Inc.  
51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA

author: Yuan yongfu  lijin   liyong   lib 511,the College of Mathematics and Computer Science,HuNan Normal University,China

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

*/
package edu.hunnu.webjetchecker.propertytest;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.StringTokenizer;

import edu.hunnu.webjetchecker.MyFile;
import edu.hunnu.webjetchecker.config.Config;
import edu.hunnu.webjetchecker.convert.Bpel2Pi;
import edu.hunnu.webjetchecker.convert.Bpel2RemarkPi;
import edu.hunnu.webjetchecker.convert.Remark_Pi2Bpel;
import edu.hunnu.webjetchecker.convert.pi2RemarkPi;

public class Bisimulation extends PropertyExamine {

    private String specPi = null;

    private String appliPi = null;

    private File specFile = null;

    private File appliFile = null;

    public Bisimulation() {

    }

    public Bisimulation(File specFile, File appliFile) { // 該構(gòu)造函數(shù)對(duì)傳入的兩個(gè)文件進(jìn)行相應(yīng)的轉(zhuǎn)化,表示成Pi表達(dá)式。

        try { // 先判斷規(guī)范文件屬于哪種類型:bpel ? pi表達(dá)式?
            RandomAccessFile tempFile = new RandomAccessFile(specFile, "r");
            try {// 根據(jù)選擇的文件的前若干個(gè)字符判斷該規(guī)范文件是否bpel或pi表達(dá)式,并對(duì)相應(yīng)的標(biāo)志進(jìn)行更新
                if (tempFile.readLine().indexOf("agent") == -1)
                    ((MyFile) specFile).setFileIsBpel(true);
                else
                    ((MyFile) specFile).setFileIsPi(true);

                tempFile.close();

            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
        } catch (FileNotFoundException e0) {
            e0.printStackTrace();
        }

        try {
            RandomAccessFile tempFile = new RandomAccessFile(specFile, "r");
            try {
                if (((MyFile) specFile).getFileIsBpel()) {// 如果該文件是Bpel,則分別將該文件的帶注釋的Pi演算表達(dá)式和不帶注釋的Pi表達(dá)式存入其對(duì)象中
                    ((MyFile) specFile).setRemarkPi(new Bpel2RemarkPi(specFile)
                            .getResult());
                    ((MyFile) specFile).setBarePi(new Bpel2Pi(specFile)
                            .getResult());
                } else {
                    String str = "";
                    tempFile.seek(0);
                    String s = "";
                    s = tempFile.readLine();
                    while (s != null) {
                        str += s;
                        s = tempFile.readLine();
                    }
                    ((MyFile) specFile).setBarePi(str);// 如果該文件是Pi表達(dá)式,則將該文件的作為整個(gè)表達(dá)式存入其中
                }
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            try {
                tempFile.close();
            } catch (IOException e2) {
                // TODO Auto-generated catch block
                e2.printStackTrace();
            }
        } catch (FileNotFoundException e0) {
            e0.printStackTrace();
        }

        // 將實(shí)施文件的帶注釋Pi表達(dá)式和不帶注釋的Pi表達(dá)式分別存入其對(duì)應(yīng)的文件對(duì)象中
        ((MyFile) appliFile).setRemarkPi(new Bpel2RemarkPi(appliFile)
                .getResult().replace('P', 'Q'));
        ((MyFile) appliFile).setBarePi(new Bpel2Pi(appliFile).getResult()
                .replace('P', 'Q'));

        // 分別將規(guī)范和實(shí)施文件的不帶注釋的Pi表達(dá)式格式化顯示到工具界面的相應(yīng)位置上!
        final String pi_expression_Spec = ((MyFile) specFile).getBarePi(); // 取得規(guī)范文件的不帶注釋的Pi表達(dá)式
        String strTemp = "";

        int noTemp = pi_expression_Spec.length();
        for (int i = 0; i < (noTemp / 200); i++) {
            for (int j = i * 200; j < (i + 1) * 200; j++) {
                strTemp += pi_expression_Spec.substring(j, j + 1);
            }
            strTemp = strTemp + "\n";
        }
        if (noTemp / 200 * 200 != noTemp) {
            for (int i = (noTemp / 200) * 200; i < noTemp; i++) {
                strTemp += pi_expression_Spec.substring(i, i + 1);
            }
        }
        setSpecPi(strTemp);

        final String pi_expression_Appl = ((MyFile) appliFile).getBarePi(); // 獲得實(shí)施文件不帶注釋的Pi表達(dá)式

        strTemp = "";
        noTemp = pi_expression_Appl.length();
        for (int i = 0; i < (noTemp / 200); i++) {
            for (int j = i * 200; j < (i + 1) * 200; j++) {
                strTemp += pi_expression_Appl.substring(j, j + 1);
            }
            strTemp = strTemp + "\n";
        }
        if (noTemp / 200 * 200 != noTemp) {
            for (int i = (noTemp / 200) * 200; i < noTemp; i++) {
                strTemp += pi_expression_Appl.substring(i, i + 1);
            }
        }

        setAppliPi(strTemp);

        this.specFile = specFile;
        this.appliFile = appliFile;

    }

    public int execute() {
        /***********************************************************************
         * 返回0表示該互模擬結(jié)果為兩個(gè)文件不互模擬 返回1,表示該互模擬結(jié)果為兩個(gè)文件互模擬 返回2,表示互模擬檢驗(yàn)出錯(cuò)
         * 返回3,表示在執(zhí)行互模擬過(guò)程中,將BPEL文件轉(zhuǎn)化為Pi演算時(shí)出錯(cuò),未將Pi表達(dá)式及相關(guān)命令寫(xiě)入到sml目錄下的commands.txt中
         * 返回4,表明捕獲讀寫(xiě)異常 返回5,表示進(jìn)程P,Q至少有一個(gè)為空 返回6,表示詞法有誤
         */
        String expSpec = ((MyFile) specFile).getBarePi();
        String expAppli = ((MyFile) appliFile).getBarePi();

        String command = "";
        command = expSpec + "\n";
        command += expAppli + "\n";
        command += "eq P Q" + "\n";

        if (command.equals(""))
            return 3;// 返回3,表示在執(zhí)行互模擬過(guò)程中,將BPEL文件轉(zhuǎn)化為Pi演算時(shí)出錯(cuò),未將Pi表達(dá)式及相關(guān)命令寫(xiě)入到sml目錄下的commands.txt中
        else { // 執(zhí)行互模擬檢驗(yàn)
            this.propertyTest(command);
            String str = null;
            //
            // 通過(guò)配置文件找到mwb的位置
            //
            Config config = new Config();
            String path = config.getMwb_path();
            File file = new File(path + "\\bisimulation");
            try {
                str = this.readLine(file); // vcbvbvcbvbvbvcbvbvbvcbvcbvcbvcbvcbvcbvc
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
                return 4; // 返回4,表明捕獲讀寫(xiě)異常
            }
            if (str == null)
                return 2; // 返回2,表示互模擬檢驗(yàn)出錯(cuò)
            else if (str.trim().equalsIgnoreCase("bisimulation")) {
                return 1; // 表示該互模擬結(jié)果為兩個(gè)文件互模擬
            } else {
                StringTokenizer stringTokenizer = new StringTokenizer(str, "&");
                int tokenCount = stringTokenizer.countTokens();
                String tempP = "", tempQ = "";
                if (tokenCount == 3) {
                    tempP = stringTokenizer.nextToken();
                    tempQ = stringTokenizer.nextToken();
                    if (!tempP.equals("") && !tempQ.equals("")) {

                        tempP = handleStr(tempP);
                        tempQ = handleStr(tempQ);
                        if (((MyFile) specFile).getFileIsBpel()) {
                            pi2RemarkPi p2r_p = new pi2RemarkPi(tempP, specFile);
                            String p_RemarkPi = p2r_p.getResult();

                            Remark_Pi2Bpel rp = new Remark_Pi2Bpel(specFile);
                            rp.pi2Bpel(p_RemarkPi, 0);
                        }

                        tempQ = tempQ.replace('Q', 'P');
                        pi2RemarkPi p2r_q = new pi2RemarkPi(tempQ, appliFile);
                        String q_RemarkPi = p2r_q.getResult();
                        Remark_Pi2Bpel rq = new Remark_Pi2Bpel(appliFile);
                        rq.pi2Bpel(q_RemarkPi, 0);

                        return 0;// 表示該互模擬結(jié)果為兩個(gè)文件不互模擬
                    } else
                        return 5;// 表示進(jìn)程P,Q至少有一個(gè)為空

                }
                return 6;// 詞法有誤

            }
        }
    }

    public void setSpecPi(String str) {
        this.specPi = str;
    }

    public void setAppliPi(String str) {
        this.appliPi = str;
    }

    public String getSpecPi() {
        return this.specPi;
    }

    public String getAppliPi() {
        return this.appliPi;
    }

    public String readLine(File file) throws IOException {
        String str = "";
        RandomAccessFile ra = new RandomAccessFile(file, "r");
        str = ra.readLine();
        return str;
    }

    public String handleStr(String str) {
        int length = str.length();
        int begin, end;
        // first, remove the restrict names (\,\,\,...)
        if (str.indexOf("(\\") > -1) {
            begin = str.indexOf("(\\");
            end = str.indexOf(")", begin);
            str = str.substring(0, begin) + str.substring(end + 1, length);
        }

        // second,remove the free names (^,^,^...)
        length = str.length();
        if (str.indexOf("(^") > -1) {
            begin = str.indexOf("(^");
            end = str.indexOf(")", begin);
            str = str.substring(0, begin) + str.substring(end + 1, length);
        }

        return str;
    }

}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲r级在线视频| 中文字幕一区二区三区在线播放| 国产精品综合一区二区| 日韩中文字幕亚洲一区二区va在线| 国产精品福利一区二区| 日本一区二区视频在线观看| 久久久夜色精品亚洲| 欧美第一区第二区| 欧美第一区第二区| 久久嫩草精品久久久精品| 精品91自产拍在线观看一区| 在线视频欧美区| 欧美色区777第一页| 欧美日韩午夜在线视频| 欧美一区二区精品| 日韩三级视频中文字幕| 日韩一级大片在线观看| 日韩一区二区三区四区| 日韩欧美区一区二| 久久精品日韩一区二区三区| 国产午夜精品美女毛片视频| 中文字幕不卡一区| 亚洲精品日韩综合观看成人91| 亚洲免费看黄网站| 日韩制服丝袜先锋影音| 日本亚洲三级在线| 国产精品18久久久久久vr| 国产成人综合亚洲网站| 色婷婷激情一区二区三区| 欧美视频一区二区三区四区 | 国产欧美久久久精品影院| 欧美高清在线一区二区| 18成人在线视频| 亚洲第一搞黄网站| 麻豆久久一区二区| 99re热这里只有精品视频| 欧美日韩一区二区三区在线 | 国产91在线观看丝袜| 99精品一区二区| 日本韩国一区二区三区| 91精品一区二区三区久久久久久 | 欧美精品一区二区三区四区 | 欧美高清www午色夜在线视频| 精品不卡在线视频| 亚洲精品视频一区二区| 蜜桃视频在线一区| 北条麻妃一区二区三区| 在线播放91灌醉迷j高跟美女 | 欧美肥妇毛茸茸| 国产精品久久久久久福利一牛影视 | 一区二区激情小说| 黑人精品欧美一区二区蜜桃| 一本一本久久a久久精品综合麻豆| 91麻豆精品国产91久久久久久 | 亚洲男人天堂一区| 国产精品一区二区三区99| 91精品办公室少妇高潮对白| 精品粉嫩超白一线天av| 亚洲动漫第一页| 99精品久久只有精品| 日韩情涩欧美日韩视频| 一级中文字幕一区二区| 九九精品一区二区| 国产91清纯白嫩初高中在线观看| 91色婷婷久久久久合中文| 久久婷婷综合激情| 日本v片在线高清不卡在线观看| 91一区二区三区在线播放| 久久精品免视看| 久久99精品国产麻豆婷婷洗澡| 日本黄色一区二区| 亚洲精品你懂的| 99久久婷婷国产精品综合| 久久只精品国产| 蜜臀av性久久久久蜜臀aⅴ流畅| 91免费视频网址| 国产精品麻豆久久久| 久久99国内精品| 欧美一区二区二区| 亚洲自拍偷拍九九九| a级精品国产片在线观看| 欧美电影精品一区二区| 麻豆精品久久精品色综合| 欧美一区二区三区系列电影| 石原莉奈一区二区三区在线观看| 欧美午夜精品久久久| 亚洲影院理伦片| 欧美日韩久久不卡| 蜜桃视频在线一区| 欧美视频日韩视频| 国产网站一区二区三区| 粉嫩av一区二区三区粉嫩 | 国产精品久久久久久久裸模| 成人免费福利片| 亚洲欧美日韩国产一区二区三区| 91国偷自产一区二区使用方法| 亚洲成精国产精品女| 在线播放中文字幕一区| 蜜臀av性久久久久蜜臀aⅴ | 中文一区二区在线观看| 91亚洲午夜精品久久久久久| 亚洲自拍偷拍九九九| 日韩欧美专区在线| 国产成人精品免费一区二区| 久久久亚洲欧洲日产国码αv| 成人综合在线网站| 久久免费偷拍视频| 一本到不卡免费一区二区| 亚洲v日本v欧美v久久精品| 日韩久久精品一区| 国产精品影视网| 亚洲精品视频自拍| 精品国免费一区二区三区| 成年人午夜久久久| 97久久超碰精品国产| 中文字幕精品一区二区精品绿巨人| 成人免费视频一区二区| 亚洲一区二区视频在线观看| 国产成人av自拍| 欧美亚洲一区二区在线| 麻豆国产一区二区| 国产精品国模大尺度视频| 91精品欧美久久久久久动漫| 精品一区二区免费视频| 中文字幕一区二区三区乱码在线 | 亚洲一区视频在线| 欧美电影精品一区二区| 91在线丨porny丨国产| 麻豆国产91在线播放| 亚洲综合小说图片| 久久久久久久久97黄色工厂| 欧美性色综合网| 国产v日产∨综合v精品视频| 亚洲成av人片一区二区梦乃| 中文字幕亚洲电影| 精品久久久久久久人人人人传媒| 成人的网站免费观看| 丝袜美腿亚洲色图| 一区二区中文视频| 日韩美女在线视频 | 成人h版在线观看| 精品国产1区2区3区| 欧美日韩在线一区二区| 93久久精品日日躁夜夜躁欧美| 毛片av一区二区三区| 亚洲自拍偷拍综合| 最新国产精品久久精品| 久久精品视频免费| 久久嫩草精品久久久久| 日韩一区二区高清| 日韩一级大片在线| 777欧美精品| 4438成人网| 91.com视频| 日韩精品一区二区三区四区| 欧美精品免费视频| 制服丝袜成人动漫| 欧美老女人第四色| 欧美一级夜夜爽| 99久久综合99久久综合网站| 亚洲免费在线观看| 亚洲欧美另类小说| 成人av在线资源网| www.爱久久.com| 91视频一区二区| 在线观看免费视频综合| 在线免费观看成人短视频| 欧美色成人综合| 欧美日韩在线直播| 日韩女优av电影在线观看| 91麻豆精品国产91久久久使用方法 | 日韩精品一区二| 91精品国产综合久久精品麻豆| 91精品国产入口| 国产日产精品1区| 亚洲四区在线观看| 亚洲国产视频一区二区| 麻豆精品新av中文字幕| 国产成人午夜精品影院观看视频| 成人免费视频国产在线观看| 91麻豆福利精品推荐| 欧美精品久久久久久久多人混战| 精品伦理精品一区| 亚洲欧洲精品一区二区三区不卡| 亚洲美女视频一区| 日本sm残虐另类| 日韩三级视频在线观看| 国产精品少妇自拍| 亚洲一区二区偷拍精品| 国产精品正在播放| 欧美日韩在线免费视频| 久久精品亚洲国产奇米99| 亚洲美女偷拍久久| 国产麻豆成人传媒免费观看| 在线中文字幕一区| 久久久影视传媒| 性欧美大战久久久久久久久| 国产91综合网| 日韩情涩欧美日韩视频| 亚洲影院理伦片|