module Build::Makefile::Parser
Constants
- SOURCE_PATH
- SOURCE_SEPARATOR
Public Class Methods
parse(scanner) { |definition| ... }
click to toggle source
# File lib/build/makefile.rb, line 87 def self.parse(scanner) while definition = parse_statement(scanner) yield definition end end
parse_rule(scanner)
click to toggle source
# File lib/build/makefile.rb, line 60 def self.parse_rule(scanner) if scanner.scan(/(.*):/) rule = [:rule] target = scanner[1].strip rule << target # Parse dependencies: dependencies = [] until scanner.scan(/\s*\n/) or scanner.eos? scanner.scan(/(\s|\\\n)*/) scanner.scan(SOURCE_PATH) # Need to remove escaped whitespace from path: dependencies << scanner[0].gsub(/\\ /, ' ') end rule << dependencies return rule end end
parse_statement(scanner)
click to toggle source
# File lib/build/makefile.rb, line 83 def self.parse_statement(scanner) parse_rule(scanner) end