module DrgDSL
Constants
- VERSION
Public Class Methods
json(input)
click to toggle source
@param input [String] @return [String] JSON representation of the AST
# File lib/drgdsl.rb, line 24 def self.json(input) Oj.dump parse(input).to_hash, mode: :compat end
parse(input)
click to toggle source
@param input [String] @return [Ast::Node]
# File lib/drgdsl.rb, line 18 def self.parse(input) Parser.parse(input) end
pretty_print(input, **options)
click to toggle source
@param input [String] @param remove_redundant_parens [Boolean] (false) @param multiline [Boolean] (true) pass false to print the expression
without any newlines.
@param output_format [Symbol] (:string) also supports :html and :bash.
@return [String] pretty printed DrgDSL
expression
@example Pretty printing with various options
input = "(pdx in table (a )) and (drg (f46) or (drg (g22) and los < 3))" DrgDSL.pretty_print(input) # => # ( # PDX IN TABLE (A) # ) # AND ( # DRG (F46) # OR ( # DRG (G22) # AND LOS < 3 # ) # ) DrgDSL.pretty_print(input, remove_redundant_parens: true) # => # PDX IN TABLE (A) # AND ( # DRG (F46) # OR DRG (G22) # AND LOS < 3 # ) DrgDSL.pretty_print(input, remove_redundant_parens: true, multiline: false) # => PDX IN TABLE (A) AND (DRG (F46) OR DRG (G22) AND LOS < 3) DrgDSL.pretty_print(input, remove_redundant_parens: true, output_format: html) # => # <pre> # <span class="drgdsl-variable">PDX</span> <span class="drgdsl-keyword">IN TABLE</span> (<span class="drgdsl-table">A</span>) # <span class="drgdsl-keyword">AND</span> ( # <span class="drgdsl-variable">DRG</span> (<span class="drgdsl-drg">F46</span>) # <span class="drgdsl-keyword">OR</span> <span class="drgdsl-variable">DRG</span> (<span class="drgdsl-drg">G22</span>) # <span class="drgdsl-keyword">AND</span> <span class="drgdsl-variable">LOS</span> <span class="drgdsl-op"><</span> <span class="drgdsl-constant">3</span> # ) # </pre>
# File lib/drgdsl.rb, line 74 def self.pretty_print(input, **options) PrettyPrinter.pretty_print(input, **options) end