广告
返回顶部
首页 > 资讯 > 精选 >Javacc的实例分析
  • 293
分享到

Javacc的实例分析

2023-06-03 04:06:59 293人浏览 泡泡鱼
摘要

这篇文章将为大家详细讲解有关Javacc的实例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。PARSER_BEGIN(Simple1)public class Simple1 { &nb

这篇文章将为大家详细讲解有关Javacc的实例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

PARSER_BEGIN(Simple1)
public class Simple1 {
   public static void main(String args[]) throws ParseException {
       Simple1 parser = new Simple1(System.in);
       parser.Input();
   }
}
PARSER_END(Simple1)

void Input() :
{}
{
   MatchedBraces() (""|"")*
}
void MatchedBraces() :
{}
{
   "{" [ MatchedBraces() ] "}"
}

   设置好javacc的bin目录后,在命令提示符下输入javacc Simple1.jj    然后javacc就会为你生成下面几个java源代码文件
Simple1.java
Simple1TokenManager.java
Simple1Constants.java
SimpleCharStream.java
Token.java
TokenMgrError.java

   其中Simple1就是你的语法分析器的对象,它的构造函数参数就是要分析的输入流,这里的是System.in。 class Simple1就定义在标记PARSER_BEGIN(Simple1)和PARSER_END(Simple1)之间。但是必须清楚的是,PARSER_BEGIN和PARSER_END中的名字必须是词法分析器的名字(这里是Simple1)。
   PARSER_END下面的定义就是文法非终结符号的定义了。
   Simple1的文法基本就是:

       Input -> MatchedBraces (""|"")*
       MatchedBraces -> “{“ MatchedBraces “}”

   从它的定义我们可以看到,每个非终结符号对于一个过程。比如Input的过程

void Input() :
{}
{
   MatchedBraces() (""|"")*
}

   在定义void Input后面记住需要加上一个冒号“:”,然后接下来是两个块{}的定义。
   第一个{}中的代码是定义数据,初试化数据的代码。第二个{}中的部分就是真正定义Input的产生式了。
   每个产生式之间用”|”符号连接。
   注意:这里的产生式并非需要严格BNF范式文法,它的文法既可以是BNF,同时还可以是混合了正则表达式中的定义方法。比如上面的 Input -> MatchedBraces (""|"")*
中(“”|””)* 就是个正则表达式,表示的是或者的0个到无限个的重复的记号。而是javacc系统定义的记号(TOKEN),表示文件结束符号。
   除了,无论是系统定义的TOKEN,还是自定义的TOKEN, 里面的TOKEN都是以的方式表示。

   每个非终结符号(Input和MatchedBraces)都会在javacc生成的Simple1.java中形成Class Simple1的成员函数。当你在外部调用Simple1的Input,那么语法分析器就会开始进行语法分析了。

关于Javacc的实例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: Javacc的实例分析

本文链接: https://www.lsjlt.com/news/232725.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Javacc的实例分析
    这篇文章将为大家详细讲解有关Javacc的实例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。PARSER_BEGIN(Simple1)public class Simple1 { &nb...
    99+
    2023-06-03
  • HTML的实例分析
    这篇文章主要为大家展示了“HTML的实例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML的实例分析”这篇文章吧。 实例:<!doctype&n...
    99+
    2022-10-19
  • MySQL实例crash的示例分析
    这篇文章主要介绍MySQL实例crash的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!【问题描述】我们生产环境有一组集群的多台MySQL服务器(MySQL 5.6.21),...
    99+
    2022-10-18
  • jQuery.ajaxPrefilter实例分析
    这篇文章主要讲解了“jQuery.ajaxPrefilter实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jQuery.ajaxPrefilter实...
    99+
    2022-10-19
  • jQuery.getScript实例分析
    这篇文章主要讲解了“jQuery.getScript实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jQuery.getScript实例分析”吧! ...
    99+
    2022-10-19
  • callbacks.disabled实例分析
    这篇文章主要介绍“callbacks.disabled实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“callbacks.disabled实例分析”文章能帮助...
    99+
    2022-10-19
  • HttpContext.Current实例分析
    本篇内容主要讲解“HttpContext.Current实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HttpContext.Current实例分析”吧!无处不在的HttpContext...
    99+
    2023-06-17
  • ADO实例分析
    本篇内容介绍了“ADO实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!定义和用法Close 方法用于关闭 Connection 对象、...
    99+
    2023-06-17
  • Hibernate实例分析
    这篇文章主要介绍“Hibernate实例分析”,在日常操作中,相信很多人在Hibernate实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Hibernate实例分析”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-17
  • HTML实例分析
    今天小编给大家分享一下HTML实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。HTML是什么HTML 是一种语言,它的...
    99+
    2023-06-27
  • HashMap实例分析
    这篇“HashMap实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“HashMap实例分析”文章吧。场景扮演面试官: ...
    99+
    2023-06-27
  • vue实例分析
    本篇内容介绍了“vue实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  Vue (读音 /vjuː/,类似于 View) 是一套用于...
    99+
    2023-06-22
  • MySQL的rollback实例分析
    本篇内容介绍了“MySQL的rollback实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!事务回滚...
    99+
    2022-10-19
  • JavaScript的DOM实例分析
    这篇文章主要介绍了JavaScript的DOM实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript的DOM实例分析文章都会有所收获,下面我们一起来看看吧。...
    99+
    2022-10-19
  • JavaScript的BOM实例分析
    这篇文章主要讲解了“JavaScript的BOM实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript的BOM实例分析”吧!   lo...
    99+
    2022-10-19
  • parallelStream的坑实例分析
    这篇文章主要讲解了“parallelStream的坑实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“parallelStream的坑实例分析”吧!很多同学喜欢使用lambda表达式,它...
    99+
    2023-06-27
  • jvm crash的实例分析
    这篇文章主要为大家分析了jvm crash的实例分析的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“jvm crash的实例分析”的知识吧。半个月来,新的网站...
    99+
    2023-06-03
  • JAVA的单例模式实例分析
    这篇文章主要介绍“JAVA的单例模式实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JAVA的单例模式实例分析”文章能帮助大家解决问题。一、单例模式是什么?单例(Singleton)模式的定义...
    99+
    2023-06-29
  • java中class实例的示例分析
    这篇文章将为大家详细讲解有关java中class实例的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、结构说明(1)class:外部类,成员(成员内部类,静态内部类),局部内部类,匿名内部类(2...
    99+
    2023-06-15
  • MySQL分库分表实例分析
    这篇“MySQL分库分表实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL分库分表实例分析”文章吧。一、为什么...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作