文言文交互式编程

程序效果

先来看看怎么使用吧

QQ机器人JAVA机器人 qq机器人java脚本_System

Github地址https://github.com/xiaoshuai125/JCQ_ChineseLanguage
 
也可以通过百度网盘
链接:https://pan.baidu.com/s/1FIM7zih7m55MmIZ7Qkui9A 提取码:owst

源码里有丰富的备注,可以看备注

环境配置

JCQ的环境配置这里就不说了,这里直说怎么去实现
参考下面两个

[QQAI机器人]-使用Java开发环境搭建[QQAI机器人]-爬虫机器人

导包
<dependency>
    <groupId>com.sobte.cqp</groupId>
    <artifactId>jcq-coolq</artifactId>
    <version>1.2.7</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.8</version>
</dependency>

<!-- http://mvnrepository.com/artifact/junit/junit -->
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.8.1</version>
</dependency>

基本语法

修改关键词请参考Keywords

下面我是从Test测试中摘抄下来的
这里面的转义字符是转移给java编译器看的,纯字符串环境中不需要转义

吾有一术名曰师弟信息 其必有名,年龄 宣 吾宣信息乃则其名与年龄合并之也 取其信息者也

function 师弟信息(名,年龄){
  var 信息 = 名 + 年龄;
  return 信息;
}



古人云执其师弟信息:"八戒","18"乎云云

System.out.println(师弟信息("八戒","18"));




吾之师弟乃"八戒"也

师弟 = "八戒";




吾之2师弟同为师弟也

2师弟 = 师弟;




古人云师弟云云

System.out.println(师弟);




古人云自"65"增之云云

System.out.println(++65);



吾有一图名曰信息 宣 名:"孙悟空",年龄:"500" 也

Map 信息 = new HashMap();
信息.put("名","孙悟空");
信息.put("年龄","500");




令吾图信息取之"年龄"也

信息.get("年龄");




令吾图信息增以 师弟:师弟,三师弟:"沙僧" 也

信息.put("三师弟","沙僧");





令吾图信息去以"三师弟"也

信息.remove("三师弟");




令吾图信息取之"三师弟"也

信息.get("三师弟")




计次 "5" 宣 古人云"666啊*5次"云云  则以

for(int i =0; i<5 ;i++ ){
  System.out.println("666啊*5次");
}





吾之年龄乃"18"也

年龄 = 18;




计次 年龄 宣 古人云"666啊*年龄次"云云  则以

for(int i =0; i<年 ;i++ ){
  System.out.println("666啊*年龄次");
}




维持 二师兄 宣 古人云"正在使用while循环"云云; 则以

while(二师兄){
  System.out.println("正在使用while循环");
}






吾有一术名曰 取师弟 宣 持 师弟 有之 吾宣师弟乃"八戒和沙僧"也 则以 取其师弟者也

function 取师弟(){
  if(师弟){
    var 师弟 = "八戒和沙僧";
  }
  return 师弟;
}





吾有一术名曰 取师弟 宣 不持 师弟 有之 吾宣师弟乃"八戒和沙僧"也无之吾宣师弟乃"吾沙僧"也 则以 取其师弟者也

function 取师弟(){
  if(!师弟){//取反
    var 师弟 = "八戒和沙僧";
  }else{
    var 师弟 = "吾沙僧";
  }
  return 师弟;
}





古人云执其 取师弟 乎云云

System.out.println(取师弟());





吾有一术名曰 取小弟 宣 
吾有一图名曰小图 宣 名:"孙悟空",年龄:"500" 也;
令吾图小图增以 师弟:师弟,三师弟:"沙僧" 也;
吾宣小弟乃 令吾图小图取之"三师弟"也 也;
取其小弟者也

function 取师弟(){
  Map 小图 = new HashMap();
  小图.put("名","孙悟空");
  小图.put("年龄","500");
  小图.put("师弟",师弟);
  小图.put("三师弟","沙僧");
  
  var 小弟 = 小图.get("三师弟");
  return 小弟;
}





执其取小弟乎

取小弟();
//invoke = 沙僧





吾之今年年龄乃"18"也

今年年龄 = 18;





吾有一术名曰 明年多大 其必有 年龄 宣 
吾宣明年乃自年龄增之也;
吾宣明年信息乃则其"明年我"与明年合并之也;
取其明年信息者也

function 明年多大(年龄){
  var 明年 = ++年龄;
  var 明年信息 = "明年我"+明年;
  return 明年信息;



执其明年多大:今年年龄乎
        
明年多大(今年年龄);
//明年我19