Ruby 求工业 G 语言实现 C++ 转换思路

DazhaKrab · March 14, 2022 · Last by DazhaKrab replied at March 19, 2022 · 440 hits

例如有如下一段 G 语言编程 IF A==TRUE STOP R1 ENDIF

工程背景: 基于 Visual studio C++ 的编程环境,上位机允许用户输入 G 语法,下位机需要识别并编译成对应的 C++ 程序, 其中 A 为一个 IO 输入,R1 为一个 IO 输出,现在有一段简单的工艺程序,如果 A 为真,则停止 R1,STOP 对应的是一个 C++ 已经写好函数,整个 IF 判断需要译码器识别并在 C++ 环境下执行。

想求求各位大大给点方案思路(无需要实现标准复杂的编译器,因为用户的自定义输入程序都是很简单的逻辑),谢谢

为什么上位机要用 G 语言输入?嵌套 js,ruby,python,lua 等等脚本不香吗

你可以看看这三个

  1. https://www.hwaci.com/sw/lemon/
  2. https://gitlab.com/fbb-git/bisoncpp
  3. https://github.com/javacc/javacc

这三个都能生成 C++ 代码(但我不知道能不能在 Windows 上编译运行,第一个应该没问题)

if else 的语法规则,类似这样,剩下的你可以自己补充

if_stmt      : keyword_if expr then
              compstmt
              if_tail
              keyword_end
             ;

if_tail    : opt_else
           | keyword_elsif expr then
             compstmt
             if_tail
            ;

opt_else   : // empty
           | keyword_else 
             compstmt
           ;

感谢感谢,我研究研究!

Reply to ccmywish

十分感谢提供的资源,我研究看看

Reply to 316786359

这个是工艺需求呢

6 Floor has deleted
You need to Sign in before reply, if you don't have an account, please Sign up first.