首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • Kotlin 高阶语法解析

    @[TOC](Kotlin 高级语法深度解析) 1.

    18510编辑于 2025-11-18
  • 来自专栏开发运维工程师

    日常运维|语法分析解析工具之ANTLR4(一)

    基于自动生成的语法分析树解析文件。简单来说就是,ANTLR根据用户自定义的语法文件自动生成词法分析器和语法分析器,并将输入文本处理为语法分析树(可视化)。 ANTLR 是一款强大的语法分析器生成工具,可用于读取、处理、执行和翻译结构化的文本或二进制文件。 一、使用场景1.1、场景公司企业用途备注Twitter语法分析Hadoop生态Hive、Pig、数据仓库、分析系统Lex Machina分析法律文本OracleSQL开发者IDE和迁移工具NetBeans 解析C++Hibernate对象-关系映射框架(ORM)处理HQL语言其他文件读取器、遗留代码转换器、维基文本渲染器、JSON解析器、DNA模式匹配、数据读取、语言解释、翻译器1.2、简单描述生成语法分析器自动建立语法分析树自动生成树遍历左递归 程序是如何来解析这些我们已经熟悉的语言,转变为计算机可以理解的特征性符号?亦或是转换为计算机可以识别的element,you,ours,dragonli。

    2.8K20编辑于 2023-11-21
  • 来自专栏算法微时光

    Android.mk语法解析

    Android.mk将是GNU Makefile的一部分,且将被Build System解析一次或多次。 所以,请尽量少的在Android.mk中声明变量,也不要假定任何东西不会在解析过程中定义。 什么是NDK Android NDK(Native Development Kit )是一套工具集合,允许你用像C/C++语言那样实现应用程序的一部分。 ? Android.mk文件语法允许我们将Source打包成一个"modules". modules可以是: 1. 静态库 2. := hello-jni LOCAL_SRC_FILES := hello-jni.c include $(BUILD_SHARED_LIBRARY) 语法介绍 现在,让我们解释一下这些行 这是必需的,因为所有的构建控制文件在一个gnu make执行上下文中解析,其中所有变量都是全局的。

    2.3K00发布于 2020-04-23
  • 来自专栏亚灿网志

    博客实现Markwon语法增强解析

    解析样式 - [ ] 网站内容统计; - [x] ?️ 前端页面美化; - [ ] ⌨️ 后端数据库结构优化; - [x] ? 简历页面制作。 解析为: [ ] ?️ 网站内容统计; [x] ?️ 解析样式 Warning / 注意 这是一个三级标题。 Quote / 参考 这是一个四级标题。 Tips / 提示 这是一个五级标题。 Expand / 拓展 这是一个六级标题。 解析样式 折叠标签 测试一下吧! 测试一下吧! 海客谈瀛洲,烟涛微茫信难求,越人语天姥,云霞明灭或可睹。天姥连天向天横,势拔五岳掩赤城。天台一万八千丈,对此欲倒东南倾。 解析样式 理科 数学 微积分 线性代数 概率论 物理 化学 语文 ----- END -----

    60330编辑于 2023-05-18
  • 来自专栏Flink实战剖析

    使用Calcite做Sql语法解析

    Flink SQL中使用Calcite作为sql语法解析、校验、优化工具,本篇是实操篇,介绍一下calcite做sql语法解析使用方式。 sql经过calcite解析之后,得到一棵抽象语法树,也就是我们说的AST,这棵语法树是由不同的节点组成,节点称之为SqlNode,根据不同类型的dml、ddl得到不同的类型的SqlNode,例如select 使用方式: SqlParser.Config config = SqlParser.configBuilder() .setLex(Lex.MYSQL) //使用mysql 语法 .build(); //SqlParser 语法解析器 SqlParser sqlParser = SqlParser .create("select id,name,age (select)结构,例如sum解析为SqlAggFunction、select解析为SqlSelectOperator,as 作为SqlAsOperator。

    3.7K31编辑于 2022-04-18
  • 来自专栏python3

    Inno Setup 3 :语法解析(二

    安装脚本段用于解析脚本中各个段的含义及使用方法。其包括[Setup]段、[Files]段、[Run]段等共17个字段,下面逐一进行分析。

    3.1K10发布于 2020-01-14
  • 来自专栏编译器开发

    CS143-PA3: 语法解析得到抽象语法

    在项目Assignment/PA3中,作者已经再cool-tree.aps中预先给出了抽象语法树的定义,并由其生成了c++调用接口,保存在cool-tree.h/cc中。 PA3的主要任务就是根据抽象语法树的定义和cool的语法规则在cool.y文件中添加AST节点声明和对应规则项。 cool语法解析规则参考cool-manual.pdf中section10-Figure1中的内容实现,实现过程需要结合cool-tree.h/c中的接口函数完成。 实验操作: PA3中仅包含了语法解析器parser,未包含词法分析器lexer,可以使用项目bin目录下提供的lexer完成词法分析,或者用PA2中完成的也可以。 /parser 结果会输出good.cl对应的抽象语法树。 附录 终结符/非终结符: 终结符:不能单独出现在推导式左边的符号;已经明确知道含义的字符串,比如关键字,数字,常量等。

    1.6K20编辑于 2021-12-09
  • 来自专栏Calcite剖析

    Calcite系列(六):执行流程-语法解析

    解析流程 语法解析是SQL处理的第一步,主要由词法分析和语法分析两个步骤组成: 词法分析:分词操作,基于生成工具(正则文法+有限状态自动机DFA)将SQL分词为Token(词法记号),并识别Token为关键字 、标识符、标识符、字面量等 语法分析:识别出AST的树状语法结构,可基于递归下降算法(自顶向下)构造,其中根节点(RootNode)可代表整个语法树 目前广泛使用的语法解析框架主要包括ANTLR、JavaCC 在大数据领域中,很多计算引擎都是基于ANTLR进行语法解析,例如 Hive、Spark和Presto等都基于ANTLR进行处理。然而,Calcite使用JavaCC编译器进行语法解析。 如图所示:一条SQL语句基于SqlParser解析后,转换为SqlNode语法树结构: 总结 语法解析是SQL处理的前提和基础,目前由于不同的计算引擎SQL方言不同,因此SQL解析处理模式也大相径庭。 从整体上看,SQL解析将SQL转为AST抽象语法树,该语法树是朴素的,无元数据绑定的,也无法直接进行查询优化。

    1.5K84编辑于 2024-05-12
  • 来自专栏全栈程序员必看

    DB2存储过程语法解析

    创建SQL存储过程(CREATE PROCEDURE (SQL) statement ) 语法格式如下: >>-CREATE PROCEDURE–procedure-name—————————– SQL-procedure-body |————————————–>< SQL-procedure-body: |–SQL-procedure-statement————————————–| 语法说明

    1.7K20编辑于 2022-09-13
  • 来自专栏博客迁移同步

    android学习笔记----xml语法、约束、解析

    所有的浏览器都可以解析xml xml语法: xml文件的encoding默认是:"utf-8",但是如果用记事本编辑xml,保存的时候默认ANSI,代表使用平台的编码表gbk保存,不指定编码的话,在解析的时候可能会出现问题 北京>         </北京> </中国> <中国>         <武汉>         </武汉> </中国> 这就是错误的,要么认为没有根标签,要么认为有2个根标签<中国>,语法不对 规范xml文件的书写(标签 属性 文本) xml约束常用技术:dtd schema android中用到的约束schema 名称空间:起到了类似包名的作用 如果xml没有约束,那么只需要遵循xml基本语法即可 sax解析一次性解析完毕,中途不会停止,除非抛异常,而pull解析需要自己去next()进行下一次解析。 PULL解析: pull解析在java里面需要导包,但是在android里面不需要解析,默认就是pull解析

    1.3K20编辑于 2023-05-06
  • 来自专栏Postgresql源码分析

    Postgresql动态执行EXECUTING语法解析过程

    return id; END; $$ LANGUAGE plpgsql; select f1(); postgres=# select f1(); f1 ---- 3 (1 row) EXECUTE解析流程

    1.5K30编辑于 2022-11-30
  • 来自专栏技术小屋-未分类

    JavaWeb——XML入门详解(概述、语法、约束、Jsoup解析、Xpath解析

    xml标签都是自定义的,html标签是预定义的; xml语法严格,html语法松散; xml是存储数据的,html是展示数据; 2)xml的语法 xml的后缀名为 .xml xml的第一行必须定义为文档声明 2)常见的解析器 JAXP:DOM方式解析,SUN公司提供,支持dom和sax两种思想,性能不佳,基本不用; DOM4J:DOM方式解析,一款优秀的解析器 Jsoup:DOM方式解析,jsoup 是一款 PULL:SAX方式解析,Android内置的解析器。 2、对象的使用 Jsoup:是一个工具类,可以解析html或xml文档,返回Docment对象;        *parse:解析html或xml文档,返回Document;                   注意:使用Jsoup的Xpath需要额外导入jar包,查询w3cschool参考手册,使用Xpath语法完成查询。

    1.6K30发布于 2020-09-25
  • 来自专栏小徐学爬虫

    Python 代码语法高亮工具库比较

    在 Python 中进行代码语法高亮有几种常见的工具库和方法。这些工具库可以根据需求和使用场景选择适合的:1、问题背景在软件开发中,代码的可读性是重中之重。 Python 是当下最流行的编程语言之一,因此有很多针对 Python 代码的语法高亮工具库可供选择。 2、解决方案PygmentsPygments 是一个功能强大的语法高亮工具库,它支持超过 50 种编程语言和标记语言的语法高亮。 Highlight.jsHighlight.js 是另一个流行的语法高亮工具库,它支持超过 180 种编程语言和标记语言的语法高亮。 highlight() 函数将 Python 代码解析成 HTML 标记,并将其保存在 html 变量中,最后通过 print(html) 函数将 HTML 标记打印到控制台。

    78110编辑于 2024-07-05
  • 来自专栏Coding迪斯尼

    语法解析的概念和代码实现(视频)

    http://mpvideo.qpic.cn/0bc3ceacmaaayeampzbtjjrfaeodeyiqajqa.f10002.mp4?dis_k=f49e898f588e9708bba47b3

    47520编辑于 2022-03-28
  • 来自专栏前端面试笔记

    react的jsx语法是怎样解析

    React.createElement("div", "2"), React.createElement("div", "3") )// 也就是说,用react开发的时候只要你用到了jsx语法 ..chidren), React.createElement("div", {}, ...chidren))代码块废话不多说直接上代码,下面是我写的一个简单的babel-plugin来对jsx语法进行解析 path.replaceWith(t.inherits(callExpr, path.node)); } } return { visitor, // 配置jsx解析

    1K10编辑于 2022-10-29
  • 来自专栏算法工程师的学习日志

    MATLAB的struct语法解析及案例详解

    struct语法 s = struct s = struct(field,value) s = struct(field1,value1,...

    1.4K10编辑于 2024-06-04
  • 来自专栏前端面试笔记

    react的jsx语法是怎样解析

    React.createElement("div", "2"), React.createElement("div", "3") )// 也就是说,用react开发的时候只要你用到了jsx语法 ..chidren), React.createElement("div", {}, ...chidren))代码块废话不多说直接上代码,下面是我写的一个简单的babel-plugin来对jsx语法进行解析 path.replaceWith(t.inherits(callExpr, path.node)); } } return { visitor, // 配置jsx解析

    73930编辑于 2022-09-26
  • 来自专栏周末程序猿

    ChatGPT|AI自制编程语言-语法解析1

    继续《AI自制编程语言》系列语法解析部分,先温习编译器执行步骤如下: 编译器执行步骤 而本篇主要集中语义解析和AST树生成部分,还未实现求值(下一篇《语法解析1》实现求值功能)。 1、语法解析 前面已经完成了词法解析部分,现在已经把每个Token都拿到了,那么要组合规则,比如let a = 10生成的词法结构如下: Type: LET, Value: let Type: IDENT 就可以用到递归下降解析器,递归下降解析器是一种自顶向下的解析方法,它从语法的开始符号开始,尝试将输入与语法的产生式进行匹配,这种解析器的名称来源于它的工作方式,它递归地下降到语法树的叶子节点,然后再返回到根节点 在实际使用中,递归下降解析器通常会与其他技术结合使用,以处理更复杂的语法和提高性能,例如,预测性解析器是一种改进的递归下降解析器,它使用查找表来预测下一个符号,从而避免了不必要的回溯。 3、定义Prompt 了解的大概的实现方案后,可以定义如下Prompt: 你是一个使用golang开发的资深的程序员,正在实现AST语法解析,其中要求如下: ### 已经定义的词法解析数据结构 type

    45100编辑于 2025-02-27
  • 抽象语法树(AST)全流程示例解析

    抽象语法树(AST)全流程示例解析以下以表达式 3 + 5 * 2 为例,贯穿从代码输入到最终应用的全流程,说明AST的核心概念和作用。1. 语法分析:构建AST的逻辑骨架根据编程语言的语法规则(如运算符优先级),语法分析器将Token序列转换为树形结构: 乘法优先级高于加法:5 * 2 先形成子树,再与 3 相加。 工具链中的AST编译器:Clang(C/C++)、Roslyn(C#)等工具依赖AST生成机器码。 代码格式化工具:Prettier(JavaScript)通过AST调整缩进和换行。 通过抽象语法树,计算机能够以统一的方式处理不同编程语言的逻辑,同时为开发者提供代码分析、重构和调试的底层支持。 例如,表达式 3 + 5 * 2 的AST不仅决定了计算结果,还成为代码智能工具(如IDE自动补全)的核心数据结构。

    1.9K10编辑于 2025-05-12
  • 来自专栏黄啊码【CSDN同名】

    基于解析器组合子的语法解析器(上)

    基于解析器组合子的语法解析器(上) 1.语法的来源 语法,在语言学中是指任意自然语言中句子、短语以及词汇等语法单位的语法结构与语法意义的规律,本质上即音义结合体之间的结合规律。 2.如何解析语法 2.1 解析语法的运作 语法解析的运作,是将输入的原始文本按照给定的语法规则,在一定的上下文环境中,通过扫描和匹配,将原始文本转换为具有特定语义的结构化数据。 2.2 解析语法的方案 市面上的语法解析方案已经非常成熟,从手写的递归下降分析到自动生成解析代码的 Yacc、ANTLR 生成器等等。另外可使用的算法也非常丰富,包括 LL、LR 以及其各种衍生变体。 有了词法解析器,下一步便是基于 token 流进行语法解析了。 4.3.2 语法解析器的上下文环境 与词法解析器一样,语法解析器的定义也是由子解析器组合而成,因此同样存在中间态,所以在上下文的结构中,也需要暂存中间态的空间,其描述如下: '(stx token-ls

    3.5K50编辑于 2022-06-20
领券