Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions lib/xdrgen.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ module Xdrgen
autoload :CLI
autoload :Generators
autoload :Parser
autoload :Preprocessor
autoload :Util

autoload :Output
Expand Down
7 changes: 6 additions & 1 deletion lib/xdrgen/ast/definitions/base.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
module Xdrgen::AST::Definitions
class Base < Treetop::Runtime::SyntaxNode
attr_writer :ifdefs

def ifdefs
@ifdefs || []
end

def sub_type
:simple
end

end
end
14 changes: 12 additions & 2 deletions lib/xdrgen/compilation.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,23 @@ def initialize(source_paths, output_dir:".", language: :ruby, generator: nil, na
@options = options
end

memoize def raw_source
@source_paths.map{|p| IO.read(p, encoding: "UTF-8")}.join("\n")
end

memoize def preprocessor
Preprocessor.new(raw_source)
end

memoize def source
@source_paths.map{|p| IO.read(p)}.join("\n")
preprocessor.cleaned_source
end

memoize def ast
parser = Parser.new
parser.parse(source)
result = parser.parse(source)
preprocessor.annotate_ast(result)
result
end

def compile
Expand Down
Loading
Loading