swift-parser-generator

授权协议 未知
开发语言 Swift
所属分类 程序开发、 其他开发相关
软件类型 开源软件
地区 不详
投 递 者 皇甫心思
操作系统 OS X
开源组织
适用人群 未知
 软件概览

swift-parser-generator 是试验性的 Swift 解析器生成器。

swift parser generator 的代码包括尝试使用 Swift 制作类似 Scala 解析器关系选择器,部分可以成功制作简单的解析器,但是还未实现 Packrat 样式解析器。

支持以下操作符解析:

// "a" followed by "b"
let rule = "a" ~ "b"

// "a" or "b"
let rule = "a" | "b"

// "a" followed by something other than "b"
let rule = "a" ~ !"b"

// "a" followed by one or more "b"
let rule = "a" ~ "b"+

// "a" followed by zero or more "b"
let rule = "a" ~ "b"*

// "a" followed by a numeric digit
let rule = "a" ~ ("0"-"9")

// "a" followed by the rule named "blah"
let rule = "a" ~ ^"blah"

// "a" optionally follewd by "b"
let rule = "a" ~ "b"/~

// "a" followed by the end of input
let rule = "a"*!*



  • 感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如果转载,请保留作者信息。 博客地址:http://blog.csdn.net/gaoxingnengjisuan 邮箱地址:dong.liu@siat.ac.cn PS:最近没有登录博客,很多朋友的留言没有看见,这里道歉!还有就是本人较少上QQ,可以邮件交流。 概述部分: 对象审计守护进程;   对象审计守护

  • 来自:http://www.tuc.cn/cgi-bin/bbs.cgi?q=show&id=tech&pid=20061017011421  作者:YENI (yeni@yueds.com) 版本:1.0 (2006-10-14)   前言 Visual Studio 2005作为Visual Studio系列中最新的产品,为程序员提供了更加标准的C++环境及多种程序设计新技术。Parser G

  • import Foundation /// 如果需要用对应的类型,字典定义Dictionary<String, Any>,对应value为Int8.self、Int16.self,下面用到的方法都需要更改为Dictionary<String, Any> let valueTypesMap: Dictionary<String, String> = [ "c" : "Int8",

  • 编写一个程序,要求可以把一个字符串中的每一个字符,如果是大写字母变小写字母,如果是小写字母变大写,如果是其他字符不变 例如: 字符串China23beiJing 经过程序转换为cHINA23BEIjING func changeCharcter (chNum:Character) -> Character { //将字符转成整数 var chStr = String(chNum)

  • Swift中类的属性有多种 存储属性:存储实例的常量和变量 计算属性:通过某种方式计算出来的属性 类属性:与整个类自身相关的属性 一、存储属性 存储属性是最简单的属性,它作为类实例的一部分,用于存储常量和变量; 可以给存储属性提供一个默认值,也可以在初始化中个对其进行初始化。 下面是存储属性的写法: //: Playground - noun: a place where people can p

  • 1、遍历字符串 // for-in 遍历String for c in str.characters{ print(c) } //c是Character类型 2、Character声明 // Character和String的相互转换 //let mark = "!" //此时mark是String类型 let mark: Character = "!" //Character必须要显示声

  • 我有个Swift的类NFSRacingFinishedHintView继承于Objective-C的类BaseXibView, 声明如下: #import <UIKit/UIKit.h> @interface BaseXibView : UIView + (id)loadFromXib; @end #import "BaseXibView.h" @implementation <span s

  • Parser Generator的使用说明 最近1个星期,大致学习了一下lex,虽然在windows系统上它并没有我所期望的强大,在调试和编写代码都遇到了不少困难,但是总体来说Parser Generator还是让我体会到了lex编程的快捷, 为了自己加深印象把一些参考资料和认识总结了一下. <!--[if !supportLists]-->1.     <!--[endif]-->parser

  • 前言 Generators与Sequences构成了Swift式循环。 Generators 提到数组我们就会想到遍历,一般的遍历可能都是从头到尾进行的。但是如果你有特殊的需求呢。你可能不想呆板的进行遍历。这时候Generators就可以派上用场了。 一个字:Generators的存在是进行特殊癖好的数组遍历,其筛选出符合该癖好的下标索引到数组没有元素为止。 怎么玩 任意一个generator都需

  • 看下面的代码 class Person { var name: String var health:Int = 100 { didSet{ if self.health > 100 { self.health = 100 } if sel

  • 很不错,可以用来验证递归下降法编写ebnf是否有问题,对if-then-else语法是否有二义性一目了然 stmt->IF stmt then stmt (else stmt)? 这句就能解决if的递归下降二义性 并可自动生成子程序,不过该代码的词法分析部分效率极低,很大的缺点 http://www.codeproject.com/Articles/28294/a-Tiny-Parser-Gene

  • @typescript-eslint/parser 和 @babel/eslint-parser 都是用于在 ESLint 中解析 JavaScript 代码的 parser(解析器)。它们之间的区别在于: @typescript-eslint/parser 是专门为 TypeScript 语法设计的解析器,能够解析 TypeScript 中的所有语法。而 @babel/eslint-parser

  • 特性提供了关于声明和类型的更多信息。在Swift中有两类特性,用于修饰声明的以及用于修饰类型的。 通过以下方式指定一个特性:符号@后面跟特性名,如果包含参数,则把参数带上: @attribute name @attribute name(attribute arguments) 有些声明特性通过接收参数来指定特性的更多信息以及它是如何修饰一个特定的声明的。这些特性的参数写在小括号内,它们的格式由它

  • 感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如果转载,请保留作者信息。 博客地址:http://blog.csdn.net/gaoxingnengjisuan 邮箱地址:dong.liu@siat.ac.cn PS:最近没有登录博客,很多朋友的留言没有看见,这里道歉!还有就是本人较少上QQ,可以邮件交流。 概述部分: 对象更新守护进程适用于这种情况: 在

  • // // PropertyMethod.swift // SwiftCode // // Created by Alisa on 2022/4/6. // Copyright © 2022 Alisa. All rights reserved. // import Foundation import UIKit /* **属性 属性:定义在类、结构体或者枚举中的量值

  • 1、What's Parser Generator 2? Parser Generator 2(以下简称PG2)是一个Windows下的lex(词法分析)与yacc(语法分析)工具,可以生成C和C++代码,并将其用于VC的工程中。 2、简单的操作过程。 在pg2中输入lex与yacc源代码,选择Compile File后生成.c(.cpp)和.h文件,在VC工程中将其编译为xxx.lib。 在自已

  • 本人录制技术视频地址:https://edu.csdn.net/lecturer/1899 欢迎观看。 Swift中属性的用法比objective-c中属性的用法丰富了很多。下面我逐一介绍。 一、 存储属性 和 延迟存储属性 Demo如下: class Dog { var name = "旺财" init(){ println("狗被初始化了") } }

 相关资料
  • Swift Argument Parser Usage Begin by declaring a type that defines the informationthat you need to collect from the command line.Decorate each stored property with one of ArgumentParser's property wra

  • GNU解析器用于解析传递的gnu参数。 它现已弃用,并由DefaultParser取代。 例子 (Example) CLITester.java import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.GnuPa

  • Posix解析器用于解析Posix,就像传递的参数一样。 它现已弃用,并由DefaultParser取代。 例子 (Example) CLITester.java import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.

  • import "go/parser" Package parser implements a parser for Go source files. Input may be provided in a variety of forms (see the various Parse* functions); the output is an abstract syntax tree (AST) r

  • DOM4J是一个基于Java的开源库,用于解析XML文档。 它是一种高度灵活且内存高效的API。 它是Java优化的,使用像List和Arrays这样的Java集合。 DOM4J适用于DOM,SAX,XPath和XSLT。 它可以解析内存占用非常少的大型XML文档。 环境设置 (Environment Setup) 要使用DOM4J解析器,您应该在应用程序的类路径中使用dom4j-1.6.1.ja

  • XPath是万维网联盟(W3C)的官方推荐。 它定义了一种在XML文件中查找信息的语言。 它用于遍历XML文档的元素和属性。 XPath提供了各种类型的表达式,可用于从XML文档中查询相关信息。 什么是XPath? Structure Definations - XPath定义XML文档的各个部分,如元素,属性,文本,命名空间,处理指令,注释和文档节点。 Path Expressions - XP