Bug 499141 - [HTML5] Check in the Java to C++ translator. r+sr=jst
--- a/.hgignore
+++ b/.hgignore
@@ -1,15 +1,16 @@
# .hgignore - List of filenames hg should ignore
# Filenames that should be ignored wherever they appear
~$
\.pyc$
(^|/)TAGS$
(^|/)\.DS_Store$
+\.class$
# User files that may appear at the root
^\.mozconfig
^mozconfig
^configure$
^config\.cache$
^config\.log$
^ID$
new file mode 100644
--- /dev/null
+++ b/parser/html/java/Makefile
@@ -0,0 +1,54 @@
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is Makefile.
+#
+# The Initial Developer of the Original Code is
+# Mozilla Corporation.
+#
+# Portions created by the Initial Developer are Copyright (C) 2009
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+# Ben Newman <b{enjam,newma}n@mozilla.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+libs:: clean \
+; cd javaparser && make libs && mv javaparser.jar ../ && cd .. && \
+ cd translator && make libs && mv translator.jar ../ && cd ..
+
+sync:: clean \
+; cd javaparser ; make sync ; cd .. ; \
+ cd translator ; make sync ; cd .. ; \
+ cd htmlparser ; make sync ; cd ..
+
+translate:: \
+; java -jar translator.jar htmlparser/src .. ../nsHtml5AtomList.h
+
+clean:: \
+; cd javaparser ; make clean ; cd .. ; \
+ cd translator ; make clean ; cd .. ; \
+ rm -rf *.jar
new file mode 100644
--- /dev/null
+++ b/parser/html/java/README.txt
@@ -0,0 +1,13 @@
+If this is your first time building the HTML5 parser, you need to execute the
+following commands (from this directory) to bootstrap the translation:
+
+ make sync # fetch remote source files and licenses
+ make # build javaparser.jar and translator.jar
+ make translate # perform the Java-to-C++ translation
+
+If you make changes to the translator or the javaparser, you can rebuild by
+retyping 'make' in this directory. If you make changes to the HTML5 java
+implementation, you can retranslate the java sources by retyping 'make
+translate' in this directory.
+
+Ben Newman (8 July 2009)
new file mode 100644
--- /dev/null
+++ b/parser/html/java/htmlparser/Makefile
@@ -0,0 +1,44 @@
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is Makefile.
+#
+# The Initial Developer of the Original Code is
+# Mozilla Corporation.
+#
+# Portions created by the Initial Developer are Copyright (C) 2009
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+# Ben Newman <b{enjam,newma}n@mozilla.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+SVN_BASE=http://svn.versiondude.net/whattf/htmlparser/trunk
+
+sync:: \
+; rm -rf src && \
+ svn co $(SVN_BASE)/src/nu/validator/htmlparser/impl src && \
+ find src -name .svn | xargs rm -rf
new file mode 100644
--- /dev/null
+++ b/parser/html/java/javaparser/Makefile
@@ -0,0 +1,59 @@
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is Makefile.
+#
+# The Initial Developer of the Original Code is
+# Mozilla Corporation.
+#
+# Portions created by the Initial Developer are Copyright (C) 2009
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+# Ben Newman <b{enjam,newma}n@mozilla.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+SVN_BASE=http://javaparser.googlecode.com/svn/trunk/JavaParser
+
+libs:: \
+; mkdir -p bin && \
+ find src -name "*.java" | \
+ xargs javac -g -d bin && \
+ jar cf javaparser.jar -C bin .
+
+sync:: \
+; rm -rf src && \
+ svn co $(SVN_BASE)/src && \
+ find src -name .svn | xargs rm -rf ; \
+ \
+ for file in COPYING COPYING.LESSER readme.txt ; \
+ do \
+ rm -f $$file ; \
+ svn cat $(SVN_BASE)/$$file > $$file ; \
+ done
+
+clean:: \
+; rm -rf bin javaparser.jar
new file mode 100644
--- /dev/null
+++ b/parser/html/java/translator/Makefile
@@ -0,0 +1,59 @@
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is Makefile.
+#
+# The Initial Developer of the Original Code is
+# Mozilla Corporation.
+#
+# Portions created by the Initial Developer are Copyright (C) 2009
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+# Ben Newman <b{enjam,newma}n@mozilla.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+SVN_BASE=http://svn.versiondude.net/whattf/htmlparser/trunk
+
+libs:: \
+; mkdir -p bin && \
+ find src -name "*.java" | \
+ xargs javac -cp ../javaparser.jar -g -d bin && \
+ jar cfm translator.jar manifest.txt -C bin .
+
+sync:: \
+; rm -rf src && \
+ svn co $(SVN_BASE)/translator-src src && \
+ find src -name .svn | xargs rm -rf ; \
+ \
+ for file in LICENSE.txt README.txt ; \
+ do \
+ rm -f $$file ; \
+ svn cat $(SVN_BASE)/$$file > $$file ; \
+ done
+
+clean:: \
+; rm -rf bin translator.jar
new file mode 100644
--- /dev/null
+++ b/parser/html/java/translator/manifest.txt
@@ -0,0 +1,2 @@
+Main-Class: nu.validator.htmlparser.cpptranslate.Main
+Class-Path: javaparser.jar
new file mode 120000
--- /dev/null
+++ b/parser/html/javasrc
@@ -0,0 +1,1 @@
+java/htmlparser/src
\ No newline at end of file