Bug 499141 - [HTML5] Check in the Java to C++ translator. r+sr=jst
authorBen Newman <bnewman@mozilla.com>
Tue, 14 Jul 2009 17:39:30 -0700
changeset 30319 3c25f816681850664b9032464608923a2740d6dd
parent 30318 b11fc38bb6ae7ce32e4daee213b0817c8a02ed7b
child 30320 0888a715cb3e425397c01b30582ed24960e7adb0
push idunknown
push userunknown
push dateunknown
bugs499141
milestone1.9.2a1pre
Bug 499141 - [HTML5] Check in the Java to C++ translator. r+sr=jst
.hgignore
parser/html/java/Makefile
parser/html/java/README.txt
parser/html/java/htmlparser/Makefile
parser/html/java/javaparser/Makefile
parser/html/java/translator/Makefile
parser/html/java/translator/manifest.txt
parser/html/javasrc
--- 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