ANTLR4

2024-01-06 01:12
文章标签 antlr4

本文主要是介绍ANTLR4,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

配置开发环境

下载antlr4 jar包

https://github.com/antlr/antlr4/blob/master/doc/getting-started.md

#安装jdk11和antlr4.13
# wget https://github.com/antlr/antlr4/archive/refs/tags/4.13.1.tar.gz
# wget https://repo.huaweicloud.com/java/jdk/11.0.2+9/jdk-11.0.2_linux-x64_bin.tar.gz
#设置环境变量
export JAVA_HOME=/data0/huozai/software/installed/jdk-11.0.2/
export PATH=/opt/installed/jdk-11.0.2/bin:$PATH
cur=`pwd`
export CLASSPATH=$cur/antlr-4.13.1-complete.jar:.
#javac -version
#antlr4
#antlr4 Expr.g4
#antlr4-parse Expr.g4 prog -gui
#antlr4-parse Expr.g4 prog -tree
#antlr4-parse Expr.g4 prog -tokens -trace
#1+2*3
#antlr4 Expr.g4
#antlr4 -Dlanguage=Cpp Expr.g4#设置工具
alias antlr4='java -Xmx500M -cp "$cur/antlr-4.13.1-complete.jar:$CLASSPATH" org.antlr.v4.Tool'
alias grun='java -Xmx500M -cp "$cur/antlr-4.13.1-complete.jar:$CLASSPATH" org.antlr.v4.gui.TestRig'# 生成代码
# antlr4 Hello.g4
# antlr4 Hello.g4 -visitor # 编译运行代码
# javac Hello*.java
# grun Hello r -tree# 生成树结构
# yum install ghostscript
# grun Hello r -ps hello_tree.ps
# ps2pdf hello_tree.ps test.pdf 生成树

Hello

// Define a grammar called Hello
grammar Hello;
r  : 'hello' ID ;         // match keyword hello followed by an identifier
ID : [a-z]+ ;             // match lower-case identifiers
WS : [ \t\r\n]+ -> skip ; // skip spaces, tabs, newlines

已经写好的grammar,可以直接拿来用

这篇关于ANTLR4的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/574758

相关文章

antlr4 Verilog2001.g4

➜ verilog which antlr4 antlr4: aliased to java -Xmx500M -cp "/usr/local/lib/antlr-4.9-complete.jar:$CLASSPATH" org.antlr.v4.Tool➜ verilog which grungrun: aliased to java -Xmx500M -cp "/usr/loca

JAVA动态表达式:Antlr4 G4 模板 + 读取字符串表达式结构树

安装antlr4插件 创建一个后缀是g4的文件 grammar Expr;expression :'(' expression ')' # parens| expression 'and' expression # andOp| expression 'or' expression # orOp| '@' VARNAME comparison_op NUMBER # c

海量智库第30期 | 基于Antlr4的SQL解析器设计介绍

SQL作为一种4GL,开发人员不需要关心其具体如何实现的,只需要进行数据需求声明即可。而对于数据库管理系统或者数据库工具,开发人员则需要了解SQL背后的逻辑,通过编码实现。一般会将SQL语句输出转换成一个语法解析树,对语法解析树进行遍历,实现逻辑。 SQL Parser可以很好的完成SQL解析的任务,但也存在语法受限、对开发人员要求高、消耗大等问题。 因此,我们选择antlr4作为语法解析器的

Antlr4简易快速入门

1. 简介 Antlr (ANother Tool for Language Recognition) 是一个强大的 跨语言语法解析器,可以用来读取、处理、执行或翻译结构化文本或二进制文件。它被广泛用来构建语言,工具和框架。Antlr可以从语法上来生成一个可以构建和遍历解析树的解析器。 2. 谁在使用 HiveSparkOraclePrestoElasticsearch 3. 常见的

ANTLR4规则解析生成器(三):遍历语法分析树

文章目录 1 词法分析2 语法分析3 遍历语法分析树3.1 Listener3.2 Visitor 4 总结 1 词法分析 词法分析就是对给定的字符串进行分割,提取出其中的单词。 在antlr4中,词法规则的名称的首字母需要大写,右侧必须是终结符,通常将词法规则的名称全部大写。 例如,要匹配C语言中的变量名,就需要知道C语言中的变量名的规范: 变量只能由字母、数字、下划

ANTLR4规则解析生成器(一):入门

文章目录 1 什么是ANTLR42 为什么需要ANTLR43 环境搭建4 官方示例4.1 编写语法规则文件4.2 生成语法解析器4.3 基于SDK实现逻辑 5 总结 1 什么是ANTLR4 ANTLR是ANother Tool for Language Recognition的缩写,它是一个强大的用于读取、处理、执行和翻译结构化文本或二进制文件的语法分析器生成器,广泛用于构建

【达梦数据库】如何使用ANTLR4 jar方式分析dm sql

环境准备 dm8 g4语法文件 jdk 11 win11 实战演示 指定antlr4.bat 脚本 @ECHO OFF"C:\Program Files\Java\jdk-11\bin\java.exe" -jar "antlr-4.11.1-complete.jar" %* 指定grun.bat @ECHO OFF"C:\Program Files\Java\jdk-11\bi

nodejs+antlr4学习汇总

分别学完nodejs、antlr4语法之后,开始用nodejs语言结合antlr4编程了。学习了一圈之后,发现资源比较少,甚至找不到。 首先能找到的资源是求约数的实例: https://www.cnblogs.com/program-in-chinese/archive/2019/03/05/10476800.html 我遇到的问题: ①browserify的时候集成的中文乱码; ②antlr4

antlr4与Javascript运行提示找不到“antlr4/index”

antlr4与Javascript运行提示找不到“antlr4/index” 因为antlr4版本的原因,index文件所在目录加了src,所以自动生成的antlr4/index找不到。可以更改为“antlr4/src/antlr4/index”.

Antlr4学习笔记

背景 在阅读shardingjdbc-4.1.1代码时,发现一段sql解析的逻辑,好奇它的实现,查阅相关资料发现解析引擎基于Antlr4实现,便有了此文 官方文档中也描述了解析引擎的迭代过程 SQL解析作为分库分表类产品的核心,其性能和兼容性是最重要的衡量指标。 ShardingSphere的SQL解析器经历了3代产品的更新迭代。 第一代SQL解析器为了追求性能与快速实现,在1.4