当前位置: 首页 > news >正文

创作一个简单的编程语言2 ,开始增加中文关键字的功能

已经基本生成了,见:https://skywalk.blog.csdn.net/article/details/151795514 现在开始增加中文关键字的功能。

前面中文关键字的时候会报错 ,所以Trae先去掉了中文关键字调试,现在都调通了再来处理中文关键字的问题

报错信息:

javac -cp ".;antlr-4.13.1-complete.jar" DebugVisitor.java && java -cp ".;antlr-4.13.1-complete.jar" DebugVisitor
DebugVisitor.java:35: 错误: 编码 GBK 的不
可映射字符 (0x83)String source = new String("(閹垫
挸宓? \"Hello from Chinese!\")".getBytes("UTF-8"), "UTF-8");
lexer grammar custom_arc_lexer;// Core Arc language keywords
FN: 'fn';
AND: 'and';
OR: 'or';
IF: 'if';
WHEN: 'when';
UNLESS: 'unless';
COND: 'cond';
CASE: 'case';
DEF: 'def';
REDEF: 'redef';
ASSIGN: 'assign';
LET: 'let';
WITH: 'with';
WITHS: 'withs';
MAC: 'mac';
DO: 'do';
DO1: 'do1';
DELAY: 'delay';
SETBANG: 'set!';
ELSE: 'else';
ARROW: '=>';// Loops and iteration
EACH: 'each';
FOR: 'for';
WHILE: 'while';
REPEAT: 'repeat';
LOOP: 'loop';
UP: 'up';// Function variants
RFN: 'rfn';
AFN: 'afn';// Error handling
CATCH: 'catch';
THROW: 'throw';
ERRSAFE: 'errsafe';
WARN: 'warn';// Atomic operations
ATOMIC: 'atomic';
ATLET: 'atlet';
ATWITH: 'atwith';
ATWITHS: 'atwiths';// Data structures
TABLE: 'table';
OBJ: 'obj';// I/O operations
// PR: 'pr';
// PRN: 'prn';
DISP: 'disp';
WRITE: 'write';
READ: 'read';
TOSTRING: 'tostring';// Module system
REQUIRE: 'require';
LOAD: 'load';// Utility functions
MAP: 'map';
KEEP: 'keep';
ACCUM: 'accum';
BEST: 'best';
SORT: 'sort';
REDUCE: 'reduce';// Boolean literals
TRUE: 'true' | '#t' | 't';
FALSE: 'false' | '#f' | 'nil';// Chinese keywords (optional)
HANSHU: '函数';
RUGUO: '如果';
FOUZE: '否则';
XUNHUAN: '循环';
FANHUI: '返回';
DINGYI: '定义';
SHEZHI: '设置';
DAYIN: '打印';// Identifiers
ID: [a-zA-Z_\u4e00-\u9fff][a-zA-Z0-9_:\u4e00-\u9fff-]*;  // Added : and - for ssyntax, and Chinese characters// Numbers (supporting integers, floats, and scientific notation)
NUMBER: '-'? [0-9]+ ('.' [0-9]+)? ([eE] [+-]? [0-9]+)?;// Whitespace and comments
WS: [ \t\r\n]+ -> skip;
COMMENT: ';' ~[\r\n]* -> skip;// Symbols
LPAREN: '(';
RPAREN: ')';
LBRACK: '[';
RBRACK: ']';
LBRACE: '{';
RBRACE: '}';
QUOTE: '\'';
BACKQUOTE: '`';
COMMA: ',';
COMMA_AT: ',@';
DOT: '.';// Operators
PLUS: '+';
MINUS: '-';
MULTIPLY: '*';
DIVIDE: '/';
MODULO: '%';
EQUAL: '=';
GT: '>';
LT: '<';
GTE: '>=';
LTE: '<=';// Arc-specific operators
PLUSPLUS: '++';
MINUSMINUS: '--';
IS: 'is';
ISNT: 'isnt';
IN: 'in';
TILDE: '~';
AMPERSAND: '&';
BANG: '!';
TILDEIS: '~is';
TILDEISNT: '~isnt';// SSyntax characters (special syntax)
COLON: ':';
COLONSTAR: ':*';
COLONTILDE: ':~';
COLONBANG: ':!';
COLONDOT: ':.';
COLONAMP: ':&';// String literal
STRING: '"' ( ESC_SEQ | ~["\\] )* '"';fragment ESC_SEQ: '\\' [btnfr\\"']          // \\b \\t \\n \\f \\r \\\\ \" \'| '\\' 'x' HEX_DIGIT HEX_DIGIT;fragment HEX_DIGIT : [0-9a-fA-F];

http://www.dtcms.com/a/389924.html

相关文章:

  • AI之EBT:《Energy-Based Transformers are Scalable Learners and Thinkers》的翻译与解读
  • UU远程听劝升级,防窥、远程协助更贴心
  • B站 韩顺平 笔记 (Day 26 - 27)
  • FTP传输替代方案:告别传统,迎接新时期高效安全的文件传输
  • 多层感知机(MLP)入门:从感知机到深度神经网络的关键一步
  • 工业级边缘计算网关-动环监控解决方案
  • 时空预测论文分享:机器学习+物理约束
  • Java 网络编程(二) --- TCP的socket的api
  • .NET 中使用Swagger 实现 API 分组管理
  • C++面试突击(2)
  • 2025年生物信息学与大数据国际会议(ICBBD 2025)
  • R 语言入门实战|第八章 S3 系统:用面向对象思维美化“老虎机”输出
  • SpringBoot自定义配置实战原理深层解析
  • cef:浏览器和渲染
  • EasyClick JavaScript 函数
  • Qt QSplineSeries详解
  • 扩散模型简介
  • [答疑]SysML模型的BDD中加了新的端口,怎样同步到IBD
  • MySQL 专题(二):索引原理与优化
  • 【脑电分析系列】第17篇:EEG特征提取与降维进阶 — 主成分分析、判别分析与黎曼几何
  • NVIDIA DOCA 环境产品使用与体验报告
  • C# Windows Service 中添加 log4net 的详细教程
  • 用 pymupdf4llm 打造 PDF → Markdown 的高效 LLM 数据管道(附实战对比)
  • 机械设备钢材建材网站 网站模版
  • Mysql8 SQLSTATE[42000] sql_mode=only_full_group_by错误解决办法
  • 【第五章:计算机视觉-项目实战之图像分类实战】2.图像分类实战-(3)批量归一化(Batch Normalization)和权重初始化的重要性
  • SQL Server 多用户读写随机超时?从问题分析到根治方案
  • 2.css的继承性,层叠性,优先级
  • OpenStack 学习笔记(四):编排管理与存储管理实践(上)
  • list_for_each_entry 详解