Module: Buildr::JavaCC

Defined in:
lib/java/javacc.rb

Defined Under Namespace

Classes: JJTreeTask, JavaCCTask

Constant Summary collapse

JAVACC =
"net.java.dev.javacc:javacc:jar:4.0"
JJTREE =
"net.java.dev.javacc:javacc:jar:4.0"

Class Method Summary collapse

Class Method Details

.javacc(*args) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/java/javacc.rb', line 8

def self.javacc(*args)
  options = Hash === args.last ? args.pop.clone : {}
  options[:verbose] ||= Rake.application.options.trace || false
  fu_check_options options, *Java::JAVA_OPTIONS + [:output]

  (options[:classpath] ||= []) << JAVACC
  java_args = ["javacc"]
  java_args << "-OUTPUT_DIRECTORY=#{options[:output]}" if options[:output]
  java_args += args.collect { |f| File.directory?(f) ? FileList[f + "/**/*.jj"] : f }.flatten
  java_args << options.reject { |k, v| !Java::JAVA_OPTIONS.include?(k) }
  Java.java(*java_args)
end

.javacc_task(args) ⇒ Object



41
42
43
44
45
# File 'lib/java/javacc.rb', line 41

def self.javacc_task(args)
  output = args.keys.first
  files = args.values.first.collect { |f| File.directory?(f) ? FileList[f + "/**/*.jj"] : f }.flatten
  JavaCCTask.define_task(output=>files)  
end

.jjtree(*args) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/java/javacc.rb', line 47

def self.jjtree(*args)
  options = Hash === args.last ? args.pop.clone : {}
  options[:verbose] ||= Rake.application.options.trace || false
  fu_check_options options, *Java::JAVA_OPTIONS + [:output, :build_node_files]

  (options[:classpath] ||= []) << JJTREE
  java_args = ["jjtree"]
  java_args << "-OUTPUT_DIRECTORY=#{options[:output]}" if options[:output]
  java_args << "-BUILD_NODE_FILES=#{options[:build_node_files]}" if options.has_key?(:build_node_files)
  java_args += args.collect { |f| File.directory?(f) ? FileList[f + "/**/*.jjt"] : f }.flatten
  java_args << options.reject { |k, v| !Java::JAVA_OPTIONS.include?(k) }
  Java.java(*java_args)
end

.jjtree_task(args) ⇒ Object



81
82
83
84
85
# File 'lib/java/javacc.rb', line 81

def self.jjtree_task(args)
  output = args.keys.first
  files = args.values.first.collect { |f| File.directory?(f) ? FileList[f + "/**/*.jjt"] : f }.flatten
  JJTreeTask.define_task(output=>files)
end