antlr@3: import from homebrew/versions.
parent
993fd34c85
commit
2c36cc5632
|
@ -0,0 +1,54 @@
|
||||||
|
class AntlrAT3 < Formula
|
||||||
|
desc "Antlr3 has a C API which has been dropped in Antlr4."
|
||||||
|
homepage "http://www.antlr.org/"
|
||||||
|
url "http://www.antlr3.org/download/antlr-3.4-complete.jar"
|
||||||
|
sha256 "9d3e866b610460664522520f73b81777b5626fb0a282a5952b9800b751550bf7"
|
||||||
|
|
||||||
|
depends_on :java
|
||||||
|
|
||||||
|
def install
|
||||||
|
libexec.install "antlr-3.4-complete.jar"
|
||||||
|
(share+"java").install_symlink "#{libexec}/antlr-3.4-complete.jar" => "antlr3.jar"
|
||||||
|
(bin+"antlr3").write <<-EOS.undent
|
||||||
|
#!/bin/sh
|
||||||
|
java -jar #{libexec}/antlr-3.4-complete.jar "$@"
|
||||||
|
EOS
|
||||||
|
end
|
||||||
|
|
||||||
|
test do
|
||||||
|
exppath = testpath/"Exp.g"
|
||||||
|
exppath.write <<-EOS.undent
|
||||||
|
grammar Exp;
|
||||||
|
eval returns [double value]
|
||||||
|
: exp=atomExp {$value = $exp.value;}
|
||||||
|
;
|
||||||
|
atomExp returns [double value]
|
||||||
|
: n=Number {$value = Double.parseDouble($n.text);}
|
||||||
|
;
|
||||||
|
Number
|
||||||
|
: ('0'..'9')+ ('.' ('0'..'9')+)?
|
||||||
|
;
|
||||||
|
WS
|
||||||
|
: (' ' | '\\t' | '\\r'| '\\n') {\$channel=HIDDEN;}
|
||||||
|
;
|
||||||
|
EOS
|
||||||
|
javapath = testpath/"ANTLRDemo.java"
|
||||||
|
javapath.write <<-EOS.undent
|
||||||
|
import org.antlr.runtime.*;
|
||||||
|
public class ANTLRDemo {
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
ANTLRStringStream in = new ANTLRStringStream("42");
|
||||||
|
ExpLexer lexer = new ExpLexer(in);
|
||||||
|
CommonTokenStream tokens = new CommonTokenStream(lexer);
|
||||||
|
ExpParser parser = new ExpParser(tokens);
|
||||||
|
System.out.println(parser.eval()); // print the value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOS
|
||||||
|
ENV.prepend "CLASSPATH", "#{share}/java/antlr3.jar", ":"
|
||||||
|
ENV.prepend "CLASSPATH", ".", ":"
|
||||||
|
system "#{bin}/antlr3", "Exp.g"
|
||||||
|
system "javac", "ANTLRDemo.java"
|
||||||
|
assert_match("42.0", pipe_output("java ANTLRDemo"))
|
||||||
|
end
|
||||||
|
end
|
|
@ -3,6 +3,7 @@
|
||||||
"ansible19": "ansible@19",
|
"ansible19": "ansible@19",
|
||||||
"ansible20": "ansible@20",
|
"ansible20": "ansible@20",
|
||||||
"antlr2": "antlr@2",
|
"antlr2": "antlr@2",
|
||||||
|
"antlr3": "antlr@3",
|
||||||
"beanstalk": "beanstalkd",
|
"beanstalk": "beanstalkd",
|
||||||
"cloog-ppl015": "cloog@0.15",
|
"cloog-ppl015": "cloog@0.15",
|
||||||
"cloog018": "cloog",
|
"cloog018": "cloog",
|
||||||
|
|
Loading…
Reference in New Issue