rename test vars to input and output
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
module Parser
|
||||
# Basic types are numbers and strings
|
||||
module BasicTypes
|
||||
include Parslet
|
||||
include output
|
||||
# space really is just space. ruby is newline sensitive, so there is more whitespace footwork
|
||||
# rule of thumb is that anything eats space behind it, but only space, no newlines
|
||||
rule(:space) { (str('\t') | str(' ')).repeat(1) }
|
||||
|
@ -1,6 +1,6 @@
|
||||
module Parser
|
||||
module CallSite
|
||||
include Parslet
|
||||
include output
|
||||
|
||||
rule(:argument_list) {
|
||||
left_parenthesis >>
|
||||
|
@ -1,7 +1,7 @@
|
||||
module Parser
|
||||
# Compound types are Arrays and Hashes
|
||||
module CompoundTypes
|
||||
include Parslet
|
||||
include output
|
||||
|
||||
rule(:array_constant) do
|
||||
left_bracket >>
|
||||
|
@ -1,6 +1,6 @@
|
||||
module Parser
|
||||
module Control
|
||||
include Parslet
|
||||
include output
|
||||
rule(:conditional) do
|
||||
keyword_if >>
|
||||
(( (value_expression|operator_expression).as(:conditional) ) |
|
||||
|
@ -1,6 +1,6 @@
|
||||
module Parser
|
||||
module Expression
|
||||
include Parslet
|
||||
include output
|
||||
|
||||
rule(:value_expression) { call_site | basic_type }
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
module Parser
|
||||
module FunctionDefinition
|
||||
include Parslet
|
||||
include output
|
||||
|
||||
rule(:function_definition) {
|
||||
keyword_def >> ((module_name|instance_variable|name).as(:receiver) >> str(".")).maybe >> #possibly qualified
|
||||
|
@ -1,6 +1,6 @@
|
||||
module Parser
|
||||
module Keywords
|
||||
include Parslet
|
||||
include output
|
||||
|
||||
rule(:keyword_begin) { str('begin').as(:begin) >> space?}
|
||||
rule(:keyword_class) { str('class') >> space? }
|
||||
|
@ -1,6 +1,6 @@
|
||||
module Parser
|
||||
module ModuleDef
|
||||
include Parslet
|
||||
include output
|
||||
rule(:module_definition) do
|
||||
keyword_module >> module_name >> eol >>
|
||||
( (keyword_end.absent? >> root_body).repeat()).as(:module_expressions) >> keyword_end >> newline
|
||||
|
@ -1,6 +1,6 @@
|
||||
module Parser
|
||||
module Operators
|
||||
include Parslet
|
||||
include output
|
||||
rule(:exponent) { str('**') >> space?}
|
||||
rule(:multiply) { match['*/%'] >> space? }
|
||||
rule(:plus) { match['+-'] >> space? }
|
||||
|
@ -19,7 +19,7 @@ module Parser
|
||||
Citrus.require "parser/basic"
|
||||
Citrus.require "parser/keywords"
|
||||
|
||||
# class Salama < Parslet::Parser
|
||||
# class Salama < output::Parser
|
||||
# include BasicTypes
|
||||
# include CompoundTypes
|
||||
# include Tokens
|
||||
|
@ -3,7 +3,7 @@ module Parser
|
||||
# braces, comman, point, questionmark , quotes, that kind of thing
|
||||
# operator symbols are separate in Opreators
|
||||
module Tokens
|
||||
include Parslet
|
||||
include output
|
||||
rule(:left_parenthesis) { str('(') >> space? }
|
||||
rule(:right_parenthesis) { str(')') >> space? }
|
||||
rule(:left_brace) { str('{') >> space? }
|
||||
|
@ -2,7 +2,7 @@ require 'parslet'
|
||||
require 'ast/expression'
|
||||
|
||||
module Parser
|
||||
class Transform < Parslet::Transform
|
||||
class Transform < output::Transform
|
||||
rule(:string => sequence(:chars)) { Ast::StringExpression.new chars.join }
|
||||
rule(:esc => simple(:esc)) { '\\' + esc }
|
||||
rule(char: simple(:char)) { char }
|
||||
|
Reference in New Issue
Block a user