Sha256: 2a48b53204506aed289418d68e6a24e7ec7fc2ec5399ce4096573b50db01a5d5
Contents?: true
Size: 1.82 KB
Versions: 4
Compression:
Stored size: 1.82 KB
Contents
class Code class Parser class Function < Parslet::Parser rule(:call) { ::Code::Parser::Call.new } rule(:code_present) { ::Code::Parser::Code.new.present } rule(:code) { ::Code::Parser::Code.new } rule(:name) { ::Code::Parser::Name.new } rule(:opening_parenthesis) { str("(") } rule(:closing_parenthesis) { str(")") } rule(:equal) { str("=") } rule(:right_caret) { str(">") } rule(:opening_curly_bracket) { str("{") } rule(:closing_curly_bracket) { str("}") } rule(:comma) { str(",") } rule(:colon) { str(":") } rule(:asterisk) { str("*") } rule(:ampersand) { str("&") } rule(:space) { str(" ") } rule(:newline) { str("\n") } rule(:whitespace) { (space | newline).repeat(1) } rule(:whitespace?) { whitespace.maybe } rule(:keyword_argument) do name >> whitespace? >> colon >> code_present.as(:default).maybe end rule(:regular_argument) do ampersand.as(:block).maybe >> (asterisk >> asterisk).as(:keyword_splat).maybe >> asterisk.as(:splat).maybe >> name >> (whitespace? >> equal >> whitespace? >> code_present.as(:default)).maybe end rule(:argument) do keyword_argument.as(:keyword) | regular_argument.as(:regular) end rule(:arguments) do argument.repeat(1, 1) >> (whitespace? >> comma >> whitespace? >> argument).repeat end rule(:function) do ( opening_parenthesis >> whitespace? >> arguments.as(:arguments).maybe >> whitespace? >> closing_parenthesis >> whitespace? >> equal >> right_caret >> whitespace? >> opening_curly_bracket >> code.as(:body) >> closing_curly_bracket ).as(:function) | call end root(:function) end end end
Version data entries
4 entries across 4 versions & 2 rubygems
Version | Path |
---|---|
template-ruby-0.3.1 | lib/code/parser/function.rb |
code-ruby-0.3.1 | lib/code/parser/function.rb |
template-ruby-0.3.0 | lib/code/parser/function.rb |
code-ruby-0.3.0 | lib/code/parser/function.rb |