Class: Collie::Formatter::Formatter
- Inherits:
-
Object
- Object
- Collie::Formatter::Formatter
- Defined in:
- lib/collie/formatter/formatter.rb
Overview
Formatter for .y grammar files
Instance Method Summary collapse
- #format(ast) ⇒ Object
-
#initialize(options = Options.new) ⇒ Formatter
constructor
A new instance of Formatter.
Constructor Details
Instance Method Details
#format(ast) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/collie/formatter/formatter.rb', line 11 def format(ast) output = [] # Prologue output << format_prologue(ast.prologue) if ast.prologue append_blank_lines(output) if ast.prologue # Declarations output << format_declarations(ast.declarations) unless ast.declarations.empty? append_blank_lines(output) unless ast.declarations.empty? # Section separator output << "%%" append_blank_lines(output) # Rules output << format_rules(ast.rules) unless ast.rules.empty? # Epilogue if ast.epilogue append_blank_lines(output) output << "%%" append_blank_lines(output) output << ast.epilogue.code end output.pop while output.last == "" output.join("\n") end |