首页 > 编程语言 >Java 将表达式解析为AST

Java 将表达式解析为AST

时间:2024-01-23 11:00:15浏览次数:40  
标签:Java AST 创建 tree new 解析 表达式


import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.tree.*;
 
public class ExpressionParser {
    public static void main(String[] args) throws Exception {
        // 创建输入流
        InputStream input = new FileInputStream("expression.txt");
        
        // 创建字符流
        ANTLRInputStream stream = new ANTLRInputStream(input);
        
        // 创建词法分析器
        MyLexer lexer = new MyLexer(stream);
        
        // 创建Token流
        CommonTokenStream tokens = new CommonTokenStream(lexer);
        
        // 创建解析器
        MyParser parser = new MyParser(tokens);
        
        // 开始解析
        ParseTree tree = parser.start();
        
        // 打印AST
        System.out.println(tree.toStringTree());
    }
}

-------------

标签:Java,AST,创建,tree,new,解析,表达式
From: https://www.cnblogs.com/gispathfinder/p/17981882

相关文章

  • 从SQL到Java数据类型映射的JDBC规范
    SQL类型Java类型CHARjava.lang.StringVARCHARjava.lang.StringLONGVARCHARjava.lang.StringNUMERICjava.math.BigDecimalDECIMALjava.math.BigDecimalBITbooleanTINYINTbyteSMALLINTshortINTEGERint......
  • Java开源表达式计算引擎(转载)
    1) jfireEL——高性能EL表达式解析框架jfireEL是快速的EL表达式解析器,支持丰富的EL表达式,7倍于SpringEL的超高性能。2)Aviator——轻量级高性能Java表达式引擎Aviator是一个高性能、轻量级的Java语言实现的表达式求值引擎,主要用于各种表达式的动态求值。支......
  • hivesql报错:java.net.SocketTimeoutException: Read timed out
    场景:在dolphin里面执行hivesql脚本,报错java.net.SocketTimeoutException:Readtimedout解决方式:hive.metastore.client.socket.timeout=1000s 扩展:"Hive报Readtimedout"错误可能也与YARN的资源限制有关。可以通过增加YARN的配置参数来解决此错误。<property><name......
  • Java开发者的Python进修指南:JSON利器之官方json库、demjson和orjson的实用指南
    JSONJSON作为目前最流行的传输格式,在Python中也有相应的实现方式。由于JSON格式的文本可以跨平台并且简单易用,因此被广泛传播。因此,我们今天的主要讨论内容是如何熟练地应用Python的JSON库来处理将JSON映射到文本,以及如何从文本映射到对象中。现在,让我们开始探讨这个话题。官方j......
  • 详解static关键字在Java中的各种适应场景,这个很重要!
    写在开头静态(static)关键字在Java的众多关键字中举足轻重!也是很多大厂面试官特别喜欢问的面试高频知识点,今天我们就一起学习,梳理,重温一下这个关键吧,之所以用重温修饰是因为在过往的文章中早已提到了static,无论是变量中还是方法中甚至于类中,static都是不可或缺的!我们知道要想调用......
  • Java集合篇
    面渣逆袭一、Java集合篇2024/1/22哈希冲突的解决方案:哈希冲突是指输入两个不同的值,通过同一个哈希函数,得到一个相同的值;而HashMap是通过链表的方式来解决哈希冲突;链地址法:在冲突的位置拉一个链表,把冲突的元素放进去;开放定址法:从冲突的位置上接着往下找,给冲突元素......
  • Java学习日记 Day8
    本来昨天计划今天开展开源架构的,但是决定先把JavaWeb的内容速通一下,明天开始SSM吧。前端+JavaWeb知识点补充:①网络传输三大基石:URL、HTTP、HTML②HTML:超文本标记语言,在浏览器中展示一个页面③CSS:美化页面④JS:实现页面动态跳转等交互⑤Tomcat:在服务器中运行程序的一个东西......
  • Java之并发工具类的详细解析
     3.并发工具类3.1并发工具类-HashtableHashtable出现的原因:在集合类中HashMap是比较常用的集合对象,但是HashMap是线程不安全的(多线程环境下可能会存在问题)。为了保证数据的安全性我们可以使用Hashtable,但是Hashtable的效率低下。代码实现:packagecom.itheima.mymap;imp......
  • 【开源】基于JAVA的生活废品回收系统
    一、摘要1.1项目介绍生活废品回收系统是可持续发展的解决方案,旨在鼓励人们分离和回收生活垃圾,减少环境污染和资源浪费,生活废品回收系统涵盖了城市居民的日常生活,包括收集、分类、处理和收集废物的完整过程。本文提出了一种基于Vue技术的生活废品回收系统,该系统可以通过垃圾的收集......
  • 求前缀表达式的值
    #include<iostream>#include<algorithm>#include<string>#include<stack>#include<stdlib.h>usingnamespacestd;stack<double>st;intmain(){stringstr[100];intn=0;//在求前缀或者后缀的时候,从前到后读入数据,前缀的话倒着读出数据,从右往左看,有数......