首页
/ Whittle项目技术文档

Whittle项目技术文档

2024-12-27 10:23:57作者:滕妙奇

1. 安装指南

Whittle项目可以通过Ruby的gem包管理器进行安装。以下是安装步骤:

gem install whittle

如果您使用Bundler管理项目依赖,可以在项目的Gemfile文件中添加以下代码:

gem 'whittle'

然后执行bundle install命令安装所有依赖。

2. 项目的使用说明

Whittle是一个纯Ruby编写的LALR(1)解析器,使用Whittle编写解析器时,需要定义一系列规则,每个规则由一个或多个终端或非终端规则组成。以下是一个简单示例:

require 'whittle'

class Mathematician < Whittle::Parser
  rule("+")
  rule("-")
  rule(:int => /[0-9]+/).as { |num| Integer(num) }
  
  rule(:expr) do |r|
    r[:int, "+", :int].as { |a, _, b| a + b }
  end

  start(:expr)
end

mathematician = Mathematician.new
mathematician.parse("1+2")
# 输出结果为 3

在上述代码中,我们定义了一个名为Mathematician的解析器类,它有一个起始规则expr,可以解析两个整数之间的加法。

3. 项目API使用文档

Whittle的API主要围绕规则的声明和解析器的执行。以下是一些关键的API调用:

  • rule(name):定义一个终端规则。
  • rule(name => pattern):定义一个带有特定模式的终端规则。
  • rule(&block):定义一个非终端规则,块中可以引用其他规则。
  • as { |*args| ... }:为规则提供一个操作,用于处理解析后的结果。
  • start(:rule_name):设置起始规则。

在定义规则时,可以使用%操作符来指定操作符的关联性(左关联或右关联),并使用^操作符来指定操作符的优先级。

4. 项目安装方式

项目的安装方式已在安装指南中说明,可通过Ruby的gem包管理器或Bundler来安装Whittle库。

以上就是Whittle项目的技术文档,希望对您的使用有所帮助。如果您有任何问题,请查阅项目的GitHub仓库或通过社区寻求帮助。

登录后查看全文
热门项目推荐