Module: Fbtxt

Defined in:
lib/fbtxt/parser.rb,
lib/fbtxt/parser.rb,
lib/fbtxt/parser/lexer.rb,
lib/fbtxt/parser/token.rb,
lib/fbtxt/parser/parser.rb,
lib/fbtxt/parser/version.rb,
lib/fbtxt/parser/token-geo.rb,
lib/fbtxt/parser/parse_tree.rb,
lib/fbtxt/parser/parser-top.rb,
lib/fbtxt/parser/token-date.rb,
lib/fbtxt/parser/token-note.rb,
lib/fbtxt/parser/token-prop.rb,
lib/fbtxt/parser/token-text.rb,
lib/fbtxt/parser/token-time.rb,
lib/fbtxt/parser/lexer_token.rb,
lib/fbtxt/parser/token-goals.rb,
lib/fbtxt/parser/token-group.rb,
lib/fbtxt/parser/token-round.rb,
lib/fbtxt/parser/token-score.rb,
lib/fbtxt/parser/lexer-logger.rb,
lib/fbtxt/parser/lexer-on_top.rb,
lib/fbtxt/parser/lexer_buffer.rb,
lib/fbtxt/parser/token-status.rb,
lib/fbtxt/parser/lexer-on_goal.rb,
lib/fbtxt/parser/lexer-prep_doc.rb,
lib/fbtxt/parser/lexer-tokenize.rb,
lib/fbtxt/parser/lexer-prep_line.rb,
lib/fbtxt/parser/token-prop_name.rb,
lib/fbtxt/parser/parse_tree-match.rb,
lib/fbtxt/parser/parse_tree-props.rb,
lib/fbtxt/parser/token-score_full.rb,
lib/fbtxt/parser/token-score_legs.rb,
lib/fbtxt/parser/token-date--names.rb,
lib/fbtxt/parser/lexer-on_group_def.rb,
lib/fbtxt/parser/lexer-on_prop_misc.rb,
lib/fbtxt/parser/lexer-on_round_def.rb,
lib/fbtxt/parser/token-score_fuller.rb,
lib/fbtxt/parser/token-date--helpers.rb,
lib/fbtxt/parser/token-date_duration.rb,
lib/fbtxt/parser/token-status_inline.rb,
lib/fbtxt/parser/lexer-on_prop_lineup.rb,
lib/fbtxt/parser/token-goals--helpers.rb,
lib/fbtxt/parser/token-score--helpers.rb,
lib/fbtxt/parser/lexer-on_prop_penalties.rb

Overview

require 'racc/parser.rb'

Defined Under Namespace

Modules: Module Classes: Lexer, LexerResult, Parser, ParserResult, Tokens

Class Method Summary collapse

Class Method Details

.lex(txt, flatten: true) ⇒ Object

returns Fbtxt::LexerResult (ok?/tokens/errors)



120
121
122
123
124
125
# File 'lib/fbtxt/parser.rb', line 120

def self.lex( txt, flatten: true )      ## returns Fbtxt::LexerResult (ok?/tokens/errors)
  lexer = Lexer.new( txt )
  ## move "wrapping" into result obj inside lexer - why? why not?
  tokens, errors = lexer.tokenize_with_errors( flatten: flatten )
  LexerResult.new( tokens, errors )
end

.parse(txt) ⇒ Object

returns Fbtxt::ParserResult (ok?/tree/errors)



127
128
129
130
131
132
# File 'lib/fbtxt/parser.rb', line 127

def self.parse( txt )   ## returns Fbtxt::ParserResult (ok?/tree/errors)
  parser = Parser.new( txt )
  ## move "wrapping" into result obj inside parser - why? why not?
  tree, errors = parser.parse_with_errors
  ParserResult.new( tree, errors )
end