diff --git a/.hgignore b/.hgignore index 24de379217d..e884c885825 100644 --- a/.hgignore +++ b/.hgignore @@ -5,6 +5,7 @@ \.pyc$ (^|/)TAGS$ (^|/)\.DS_Store$ +\.class$ # User files that may appear at the root ^\.mozconfig diff --git a/parser/html/java/Makefile b/parser/html/java/Makefile new file mode 100644 index 00000000000..f10379165bc --- /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 +# +# 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 diff --git a/parser/html/java/README.txt b/parser/html/java/README.txt new file mode 100644 index 00000000000..5eb96fe4e50 --- /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) diff --git a/parser/html/java/htmlparser/Makefile b/parser/html/java/htmlparser/Makefile new file mode 100644 index 00000000000..8a362f743b4 --- /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 +# +# 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 diff --git a/parser/html/java/javaparser/Makefile b/parser/html/java/javaparser/Makefile new file mode 100644 index 00000000000..547a7105317 --- /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 +# +# 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 diff --git a/parser/html/java/translator/Makefile b/parser/html/java/translator/Makefile new file mode 100644 index 00000000000..cc856905922 --- /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 +# +# 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 diff --git a/parser/html/java/translator/manifest.txt b/parser/html/java/translator/manifest.txt new file mode 100644 index 00000000000..14cd9d08192 --- /dev/null +++ b/parser/html/java/translator/manifest.txt @@ -0,0 +1,2 @@ +Main-Class: nu.validator.htmlparser.cpptranslate.Main +Class-Path: javaparser.jar diff --git a/parser/html/javasrc b/parser/html/javasrc new file mode 120000 index 00000000000..24b3dca96ed --- /dev/null +++ b/parser/html/javasrc @@ -0,0 +1 @@ +java/htmlparser/src \ No newline at end of file