自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4651)
  • 资源 (10)
  • 收藏
  • 关注

原创 【Antlr】Antlr 在语法中嵌入任意动作

参考Antlr4 权威指南 4.4 章节。

2024-01-04 13:17:49 347

转载 【Flink】Flink 1.15 新功能架构解析:高效稳定的通用增量 Checkpoint

作者 | 梅源(Yuan Mei)& Roman Khachatryan流处理系统最重要的特性是端到端的延迟,端到端延迟是指开始处理输入数据到输出该数据产生的结果所需的时间。Flink,作为流式计算的标杆,其端到端延迟包括容错的快慢主要取决于检查点机制(Checkpointing),所以如何将 Checkpoint 做得高效稳定是 Flink 流计算的首要任务。

2024-01-03 22:39:26 44

原创 【Antlr】Antlr 资料 学习 网站

https://www.cntofu.com/book/115/precedence-left-recursion-associativity.md

2024-01-03 22:00:00 313

转载 【Flink】Flink 如何大幅降低 HDFS 压力?

作者:邱从贤(山智)众所周知 Flink 是当前广泛使用的计算引擎,Flink 使用 checkpoint 机制进行容错处理[1],Flink 的 checkpoint 会将状态快照备份到分布式存储系统,供后续恢复使用。在 Alibaba 内部我们使用的存储主要是 HDFS,当同一个集群的 Job 到达一定数量后,会对 HDFS 造成非常大的压力,本文将介绍一种大幅度降低 HDFS 压力的方法 – 小文件合并。

2024-01-03 21:04:08 37

原创 【Antlr】ANTLR 语法设计

一种语言模式就是一种递归的语法结构。我们需要从一系列有代表性的输入文件中归纳出一门语言的结构。在完成这样的归纳工作后,我们就可以正式使用ANTLR语法来表达这门语言了。编写语法和编写软件很相似,差异在于我们处理的是语言规则,而非函数或者过程(procedure讨论语法的整体结构以及如何建立初始的语法框架。语法由一个为该语法命名的头部定义和一系列可以相互引用的语言规则组成。...设计良好的语法反映了编程世界中的功能分解或者自顶向下的设计。

2024-01-03 16:57:22 890

原创 【Antlr】Antlr API 简介

antlr包结构介绍,以及简单的api解释。基于前瞻符号作出预测。

2024-01-03 14:40:49 341

原创 【Antlr】Antlr将词法符号送入不同的通道、处理注释

antlr 权威指南并且补充绝大多数编程语言忽略词法符号间的空格和注释,这意味着它们可以出现在任何地方。这就给语法分析器带来了一个难题,它必须时刻考虑两种可选的词法符号的存在:空白字符和注释。常见的解决方案是, 令词法分析器匹配这些词法符号并丢弃。在绝大多数情况下,因为注释不影响生成的代码,这种方案表现出色例如编译器。另一方面,如果我们在编写一个将遗留代码翻译成现代编程语言的翻译器,那就真的需要保留其中的注释了,因为它们是代码的一部分。

2024-01-03 14:40:37 802

原创 【Antlr】Antlr 自动错误恢复机制

antlr 权威指南并且补充错误恢复指的是允许语法分析器在发现语法错误后还能继续的机制。原则上,最好的错误恢复来自人类在手工编写的递归下降的语法分析器中进行的干预。尽管如此,按照我的经验,手工编写一个优秀的错误恢复机制非常难,因为这个过程过于枯燥乏味,极易出错。在本书描述的ANTLR最新版中,我穷尽我毕生所学,基于多年的经验,来为ANTLR语法提供良好的错误恢复机制。

2024-01-03 09:07:12 763

原创 【Antlr】Antlr生成调用图

参考:Antlr权威指南 8.3 章。不清楚下面这个调用图怎么展示出来。

2024-01-03 09:06:59 373

原创 【Antlr】完整案例一次带你完全学会使用antlr、Antlr 实战之 处理行级别的日志

为了展示最终的程序对我们构建词法分析器和语法分析器过程的影响,想象一个场景,我们在处理一个网络服务器上的日志文件,日志文件的每行包含一条记录。我们将逐渐增加程序的需求,在这个过程中分析词法分析器和语法分析器之间的界线是如何移动的。我们的大脑很自然地从这些不同的词法元素中提取出了信息,不过,如果我们想要的只是统计文件的总行数,我们就可以忽略除换行符之外的一切字符。在上面的结构中,词法分析器不需要识别太多东西,语法分析器也只需匹配换行符序列 (~x运算符匹配除x之外的任何字符)。

2024-01-02 13:09:52 1160

原创 【Antlr】 Antlr 错误与恢复

参考:Antlr4 第九章 错误与恢复。

2024-01-02 13:08:43 379

原创 【Antlr】unknown attribute text for rule stat in $stat.text

g4文件如下,编译报错classDef;member;;expr: INT;这里是(注: ANTLR 4.3之后,原先的$stat.text需要改成。译者注)改成如下就好了classDef;member;;expr: INT;

2024-01-02 13:08:29 366

原创 【Antlr】识别常见的词法结构

语法分析器通过输入的词法符号流来识别特定的语言结构词法分析器通过输入的字符流来识别特定的语言结构。词法规则以大写字母开头文法规则以小写字母开头。例如,ID是一个词法规则名,而expr是一 个文法规则名。

2024-01-01 16:14:01 726

原创 【Antlr】Antlr语法设计

写Antlr语法就是自顶向下、先全局后细节的过程。先找到最大的语法框架,然后逐步细节的去描述它。设计起始规则的内容实际上就是使用“英语伪代码”来描述输入文本的整体结构,这和我们编写软件的过程有点类似。例如,“- 个CSV文件就是一系列以换行符为终止的行。其中,isa左侧的单词file就是规则名,右侧的全部内容就是规则定义中的。

2024-01-01 16:13:18 331

原创 【Antlr】Antlr重写输入流

我们的main程序和4.3节中的ExtractInterface Tool.java非常相似,的JavaL istener接口中的方法全部实现。更简单的做法是,在原先的。Eclipse的自动生成功能)。小事(读取输入,稍事修改后输出)就把ANTLR根据Java语法生成。接下来,让我们构建一个小工具,它能够修改Java源代码并插入。词法符号流中插入一个适当的代表常量字段的词法符号,然后打印出。除了其中的一部分:当遍历结束后,我们将词法符号流打印出来(箭。对症下药,才能事半功倍。G4文件如上,改变的代码如下。

2024-01-01 16:12:47 324

原创 【Antlr】WHITESPACE is not a recognized channel name

不能识别的channel名称,但是上面不是定义了。将词法符号送入不同的通道 这个生成的时候报错。antlr4 权威指南中的文件 ,第十二章。

2024-01-01 16:12:13 354

原创 【Antlr】rule expr: must label all alternatives or none

写了一个antlr 语法文件 ,如下 报错。

2024-01-01 16:11:34 353

原创 【Antlr】cannot create implicit token for string literal in non-combined grammar xx

写了一个g4文件,然后编译的时候报错这里是因为我定义了两个一样的修改一下就好了不能在非组合语法中为字符串文字创建隐式标记。

2024-01-01 16:11:00 343

原创 【Antlr】InvalidClassException: org.antlr.v4.runtime.atn.ATN; Could not deserialize ATN with UUID

spark antlr解析SQL报错如下address_id bigint comment '业主小区id',address string comment '业主小区', city string comment '城市'comment'小区和城市映射维表'

2024-01-01 16:10:16 462

原创 【Antlr】BNF范式

巴科斯范式 以美国人巴科斯(Backus)和丹麦人诺尔(Naur)的名字命名的一种形式化的语法表示方法,用来描述语法的一种形式体系,是一种典型的元语言。又称巴科斯-诺尔形式(Backus-Naur form)。它不仅能严格地表示语法规则,而且所描述的语法是与上下文无关的。它具有语法简单,表示明确,便于语法分析和编译的特点。BNF表示语法规则的方式为:非终结符用尖括号括起。每条规则的左部是一个非终结符,右部是由非终结符和终结符组成的一个符号串,中间一般以“::=”分开。

2024-01-01 16:09:28 332

原创 【Antlr】ANTLR语法规则

使用Import语法规则分类,可以使语法规则更加清晰;值得注意的是,当前规则的优先级高于导入规则。ANTLR语法规则的主要工作是定义词法解析规则和语法解析规则。ANTLR约定词法解析规则以大写字母开头,语法解析规则以小写字母开头。ANTLR规则基于BNF范式,用’|’表示分支选项,’*’表示匹配前一个匹配项0次或者多次,’+’ 表示匹配前一个匹配项至少一次。规则的名称是NUM,以大写字母开头,因此是词法分析的规则;规则的内容是[0-9]+,表示所有的整数。规则名称及内容以冒号分隔,分号结尾。

2024-01-01 16:08:49 325

原创 【Antlr】ANTLR-语法树遍历机制

ParseTreeListener 与 ParseTreeVisitor区别ParseTreeListener是被动遍历,ParseTreeVisitor是主动遍历ParseTreeListener需要与antlr遍历类ParseTreeWalker一起使用Antlr提供了两种遍历手段,一种是Listener模式,一种是Visitor模式。两者各有优劣,Listener模式适合全局查找,默认是深度优先遍历,而Visitor模式适合指定某个节点作遍历。这种遍历方式默认是先根,然后遍历左右子树。

2024-01-01 16:08:12 814

原创 【工具】IDEA下ANTLR Preview的使用

输入一个语句你想解析的语句放进去,发现没什么卵用,此时打开。(这个是可变的),然后会发现生成了树。点击一个黄色的标签,然后右键,如何查看树形结构呢?

2024-01-01 16:07:22 381

原创 【Antlr】在IDEA中安装使用Antlr

IDEA插件地址http://plugins.jetbrains.com/plugin/7358-antlr-v4-grammar-plugin。配置完成后右键文件 -> Generate ANNTLR Recognizer,可以看到生成一堆文件。的时候,使用的是4.7生成的,但是运行却是4.6。的时候,使用的是4.6生成的,但是运行却是4.5。装1.8.4版本,可以看到这里支持。装1.8版本,可以看到这里支持。装1.6版本,可以看到这里支持。最后经过测试,原来是。最后经过测试,原来是。

2024-01-01 16:06:40 413

原创 【Antlr】antlr4做一个计算器

2.建立G4文件内容建立测试文件内容建立主文件建立数据测试文件最后要加上一个换行运行主文件,结果参考:https://blog.csdn.net/zjq_1314520/article/details/65938532。

2024-01-01 16:05:59 289

原创 【Antlr】mac下antlr4命令使用

执行antlr4生成文件,并且编译java源代码,注意在IDEA工具中,编译的class文件不在同一个目录。(UNIX系统上是ctrl+d,在windows下是ctrl+z),可以看到输出结果。该错误不影响,这是正确的,因为没加参数。可以看到该目录下出现一个jar包。然后我们执行命令,输入。最后看图,输入入下命令。

2024-01-01 16:05:13 435

原创 【Antlr】完整案例一次带你完全学会使用antlr、Antlr 实战之 处理行级别的日志

为了展示最终的程序对我们构建词法分析器和语法分析器过程的影响,想象一个场景,我们在处理一个网络服务器上的日志文件,日志文件的每行包含一条记录。我们将逐渐增加程序的需求,在这个过程中分析词法分析器和语法分析器之间的界线是如何移动的。我们的大脑很自然地从这些不同的词法元素中提取出了信息,不过,如果我们想要的只是统计文件的总行数,我们就可以忽略除换行符之外的一切字符。在上面的结构中,词法分析器不需要识别太多东西,语法分析器也只需匹配换行符序列 (~x运算符匹配除x之外的任何字符)。

2024-01-01 13:02:35 1494 2

转载 【kafka】Kafka 日志留存策略、清理策略

关于 Kafka 日志留存 (log retention) 策略的介绍,网上已有很多文章。不过目前其策略已然发生了一些变化,故本文针对较新版本的 Kafka 做一次统一的讨论。如果没有显式说明,本文一律以 Kafka 1.0.0 作为分析对象。

2023-12-29 22:40:13 372

原创 【kafka】Timeout expired before the position for partition could be determined

因为这个环境是已经存在的,以前的kafka容器是1.0版本,但是现在要验证一个新的环境kafka 3.6.0。我不想重新做,然后我想直接在flink1里面直接安装kafka 3.6版本。然后把kafka的端口映射打开,将kafka内部的9194端口,映射到外面的19194端口,然后在宿主机上查看端口。可以看到kafka端口是通的,zk端口也是通的,但是生产的时候报错,而且一直没找到解决方案。发现端口映射已经正常了。然后写了一个代码进行验证。然后进行消费,可以看到可以正常的进行消费。首先说一下这个环境特征。

2023-12-29 21:28:34 644 2

原创 【Antlr】Antlr 处理优先级、左递归、结合性

上面的例子中的expr规则是直接左递归的,因为除INT之外的所有备选分支都以expr规则本身开头(它同时也是右递归 (right recursive) 的,因为它的某些备选分支在最右侧引用了expr)。它们的差异在于,中间的语法分析树表示将1加到2和3相乘的结果上去,而右侧的语法分析树表示将1和2相加的结果与3相乘。在自顶向下的语法和手工编写的递归下降语法分析器中,处理表达式都是一件相当棘手的事情,这首先是因为大多数语法都存在歧义,其次是因为大多数语言的规范使用了一种特殊的递归方式,称为。

2023-12-27 21:33:37 1107

原创 【Antlr】Antlr 几种常见的计算机语言模式

它是一个有限长度或者任意长度的序列,序列中的元素可以是词法行号或者子规则。

2023-12-27 21:33:13 357

原创 【Antlr】Antlr 核心标记

Antlr 核心标记

2023-12-27 08:58:54 395 1

原创 【Antlr】ANTLR 4中何时需要EOF?

最近要分析一个G4文件,想看看这个是怎么设计的,然后在第一行,遇到如下的G4文件定义然后看到EOF,然后在整个文件里面没有查到这个文件的定义,所以这个应该是内置的,既然是内置的,那么这个代表什么意思呢?经过查询发现ANTLRWorks2中的TestDriver在何时接受不带语法和显式EOF的语法以及何时不接受语法的方法似乎有些挑剔。《 ANTLR4入门指南》中的Hello语法在任何地方都没有使用EOF,因此我推断最好避免使用显式的EOF。使用EOF的最佳实践是什么?您何时真正需要它?

2023-12-27 08:52:03 459

转载 【Nacos】Nacos路由策略之保护阈值

保护阈值是为了防止因过多实例故障,导致所有流量全部流入剩余健康实例,继而造成流量压力将剩余健康实例被压垮形成雪崩效应。它的默认值是 0,取值范围应该是 0-1 的浮点数。此值是定义集群中允许健康实例占比的最小值,如果实际健康服务占比小于或等于此值,就会触发保护阈值,那么 Nacos 就会将全部实例:健康实例 + 非健康实例全部返回给调用者,而当保护阈值未触发时,Nacos 只会把健康实例返回给调用者。​。

2023-12-25 21:12:35 933

原创 【Antlr】使用 Antlr 识别常见的语言模式

本章摘抄自:Antlr4权威指南,并且对其进行补充。现在,我们已经掌握了一种自顶向下的、草拟一个语法的策略,在之前的章节中,我们见过这些模式的一些例子。随着学习的深入,我们会用正式的语法规则将特定的模式表达出来,通过这种方式,我们就能够掌握基本的ANTLR标记的用法。下面,让我们开始学习这些最常见的语言模式吧。

2023-12-25 13:13:21 924 1

原创 【Antlr】Antlr 如何写语法文件、自顶向下的设计模式、先全局后细节的设计模式

你应该已经明白了这个过程,从最高的层次开始,逐渐向下进行,将像是Java类定义这样巨大的语言结构分解为若千条稍后定义的规则。由关键字class开始,之后是一个标识符、可选的父类名 (superclass specifier)、可选的实现语句(implements clause),以及类的定义体 (class body)。所以,我们的第一个任务是找到最粗粒度的语言结构,将它作为我们的起始规则。不过,在深入研究语法的细节之前,有件大有裨益的事情是:讨论语法的整体结构以及如何建立初始的语法框架。

2023-12-25 13:12:37 890

原创 【Antlr4】Antlr4利用监听器构建一个翻译程序

想象一下,你的老板让你编写一个工具,用来将一个Java类中的全部方法抽取出来,生成一个接口文件。Java语法分析树是由解析Java语言的语法分析器生成的,本书的源代码中提供了Java语言的ANTLR语法。我们将会从类定义中提取类名,用它来命名生成的接口,然后从类的方法定义中获取方法签名(返回值、方法名,以及参数列表)。访问器机制和监听器机制的最大的区别在于,监听器的方法会被ANTLR提供的遍历器对象自动调用,而在访问器的方法中,必须显式调用visit方法来访问子节点。的后果就是对应的子树将不会被访问。

2023-12-22 22:34:33 394 1

原创 【Antlr】Antlr实现计算器、并且增加clear方法

这是一个锻炼你的好机会,让你亲自动手进行实际操作,而又无须深入了解全部细节。clear命令会将计算器的“内存”清空(即EvalVisitor的memory成员),你需要在stat 规则中增加一个新备选分支来识别它。来给这个新的备选分支加上标签,然后对修改后的语法运行ANTLR命令,获得生成的访问器接口。然后,为了能在接收clear命令的时候作出响应,你需要实现visitClear。本文是对Antlr权威指南第4章节,利用访问器构建一个计算器,里面的补充,里面结尾如下。ClearVisitor方法如下。

2023-12-21 17:53:35 391 1

原创 【Antlr】Antlr 拟人化 分析 G4 文件

假设我们定义了如下的词汇A 代表 小红 B 代表 小澜 C 代表 喜欢 D 代表 讨厌我们可以自由定于句子A C B 代表 小红喜欢小澜 B C A 代表 小澜讨厌小红。

2023-12-21 15:12:25 1128 2

转载 【Flink】Flink 输入输出为0,深入解析 Flink 的算子链机制

笔者在 Flink 社区群里经常能看到类似这样的疑问。这种情况几乎都不是程序有问题,而是因为 Flink 的 operator chain —— 即算子链机制导致的,即提交的作业的执行计划中,所有算子的并发实例(即 sub-task )都因为满足特定条件而串成了整体来执行,自然就观察不到算子之间的数据流量了。当然上述是一种特殊情况。我们更常见到的是只有部分算子得到了算子链机制的优化,如 官方文档 中出现过多次的下图所示,注意 Source 和 map () 算子。

2023-12-20 22:37:52 146

Eclipse Formatter 模板 Formatter.xml

Formatter模板设置好后,保存时可自动格式化代码。代码的空格处理,写的时候不用再担心格式问题。设置保存时,仅保存编辑的行,这样不会更新其他行的代码,提交代码时,也是只变更自己编辑的行。

2020-11-11

Drools-复杂事件处理

drools复杂事件处理,详细说明文档。一些语法的详细解析

2018-09-30

excel操作包

excel导入到数据库的工具包

2017-02-20

eclipse的hadoop插件

2016-09-14

hadoop学习文档

2016-09-14

hadoop单结点

hadoop单结点

2016-06-16

hadoop单结点配置

hadoop单结点配置,根据官网配置的实验

2016-06-16

native_32位

Hadoop配置需要的32位 native_32位

2016-06-16

s2sh整合配置,非常适合初学者,明白配置流程

非常适合初学者掌握ssh2整合的例子,献给初学者

2015-12-18

打飞机代码

一个打飞机游戏代码,全java写的,能实现打飞机的基本功能

2015-08-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除