创建自己的脚本语言(入门)本教程的平台是Windows平台,编辑器VS 2017 个人版

字数 315阅读 12

创建一个简陋的基础版脚本解析器

1:直接用你的代码编辑工具创建一个命令行项目


创建项目
这个是main里的代码
#include "pch.h"
#include <iostream>

int main()
{
    std::cout << "开始脚本\n"; 
    return 0;
}

运行之后会出现 开始脚本

2:把你生成的.exe文件目录加到path里

windows是 我的电脑->右键->属性->高级系统设置->高级->环境变量->找到path点击编辑

打开path编辑界面

把你.exe的路径加到path里,(vs项目:点击运行后会在项目目录的Debug里生成一个.exe)


添加路径

3:现在运行cmd 输入你的.exe名称就能运行你的.exe了


qpl4.png

4:给.exe添加启动参数

就是把没有参数的main改成有参数的main
代码


#include "pch.h"
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char **argv)
{
    printf("开始脚本\n");
    cout << "你输入了" << argc << "个参数" << endl;
    cout << "脚本解析器路径" << argv[0] << endl;
    for (int i = 0; i < argc; i++) {
        if (i != 0) {
            cout << "第" << i << "个参数是" << argv[i] << endl;
        }
    }
    
    printf("脚本结束");

    return 0;

}

输出


输出

5:现在开始读取自己创建的脚本文件(就是文本文件改成自己想要的后缀名)

这里文件后缀用.qplog 文件里只有一句话


脚本文件截图

6:修改main文件读取脚本
代码


#include "pch.h"
#include <iostream>
#include <fstream>
#include <sstream>  
#include <Windows.h>
using namespace std;
int main(int argc, char **argv)
{

    cout << "脚本解析器路径" << argv[0] << endl;
    
    if (argc > 1) {
        cout << "脚本文件地址" << argv[1] << endl;


        fstream infile(argv[1]);
        if (infile.is_open()) {
            stringstream ss; // 创建字符串流对象
            ss << infile.rdbuf(); // 把文件流中的字符输入到字符串流中
            string str = ss.str(); // 获取流中的字符串
            
            cout << "脚本内容" << endl;
            cout << str << endl;

        }
        else {
            //文字显示颜色,不用管
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED| FOREGROUND_INTENSITY);

            cerr << "没找到脚本文件" << endl;

            //文字显示颜色,不用管
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE );
        }
        infile.close();
    }

    printf("脚本结束");

    return 0;

}


输出


输出

简单的脚本解析器已经完成,大佬们可以愉快的创建自己的脚本语言了

点击这里可以看到作者的其他文章

欢迎转载,转载请标明出处

推荐阅读更多精彩内容