summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormichelou <michelou@epfl.ch>2003-11-17 20:46:47 +0000
committermichelou <michelou@epfl.ch>2003-11-17 20:46:47 +0000
commitbcd8a97b88d798245d3d4c621e0b9fbd222b31ff (patch)
tree5d75fa41515a0b38c20cc17bd126322bcf4f9b6e
parent64913ef74927b3eb231d591e0484e61898204cc7 (diff)
downloadscala-bcd8a97b88d798245d3d4c621e0b9fbd222b31ff.tar.gz
scala-bcd8a97b88d798245d3d4c621e0b9fbd222b31ff.tar.bz2
scala-bcd8a97b88d798245d3d4c621e0b9fbd222b31ff.zip
- started migration of scaladoc from Java to Scala
-rw-r--r--Makefile10
-rw-r--r--config/list/scaladoc.lst2
-rw-r--r--sources/bin/.scala_wrapper.tmpl22
-rw-r--r--sources/scala/tools/scaladoc/Main.scala41
4 files changed, 72 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index f5b9658457..8c11951cb1 100644
--- a/Makefile
+++ b/Makefile
@@ -104,7 +104,8 @@ INTERPRETER_JC_FILES = $(INTERPRETER_SOURCES)
SCALADOC_ROOT = $(PROJECT_SOURCEDIR)/scala/tools/scaladoc
SCALADOC_LIST = $(call READLIST,$(PROJECT_LISTDIR)/scaladoc.lst)
SCALADOC_SOURCES += $(SCALADOC_LIST:%=$(SCALADOC_ROOT)/%)
-SCALADOC_JC_FILES = $(SCALADOC_SOURCES)
+SCALADOC_JC_FILES = $(filter %.java,$(SCALADOC_SOURCES))
+SCALADOC_SC_FILES = $(filter %.scala,$(SCALADOC_SOURCES))
SCALADOC_RSRC_LIST = resources/style.css resources/script.js
SCALADOC_RSRC_FILES += $(SCALADOC_RSRC_LIST:%=$(SCALADOC_ROOT)/%)
SCALADOC_RSRC_OUTPUTDIR = $(SCALADOC_ROOT:$(PROJECT_SOURCEDIR)/%=$(PROJECT_OUTPUTDIR)/%)
@@ -176,6 +177,7 @@ fastclean :
$(RM) .latest-dtd2scala-rsrc
$(RM) .latest-scalap-sc
$(RM) .latest-scaladoc-jc
+ $(RM) .latest-scaladoc-sc
$(RM) .latest-scaladoc-rsrc
$(RM) .latest-interpreter-jc
$(RM) .latest-library-sc
@@ -219,6 +221,7 @@ library : .latest-$(boot)library-jc
library : .latest-$(boot)library-sc
interpreter : .latest-interpreter-jc
scaladoc : .latest-scaladoc-jc
+scaladoc : .latest-scaladoc-sc
scaladoc : .latest-scaladoc-rsrc
dtd2scala : .latest-dtd2scala-sc
dtd2scala : .latest-dtd2scala-rsrc
@@ -344,6 +347,10 @@ cvs-fix-perms :
@$(make) jc target=SCALADOC SCALADOC_JC_FILES='$?'
touch $@
+.latest-scaladoc-sc : $(SCALADOC_SC_FILES)
+ @$(make) sc target=SCALADOC SCALADOC_SC_FILES='$?'
+ touch $@
+
.latest-scaladoc-rsrc : $(SCALADOC_RSRC_FILES)
$(strip $(MIRROR) -m 644 -C $(SCALADOC_ROOT) $(SCALADOC_RSRC_LIST) \
$(SCALADOC_RSRC_OUTPUTDIR))
@@ -428,6 +435,7 @@ $(TOOLS_JAR_ARCHIVE) : .latest-compiler-jc
$(TOOLS_JAR_ARCHIVE) : .latest-compiler-sc
$(TOOLS_JAR_ARCHIVE) : .latest-interpreter-jc
$(TOOLS_JAR_ARCHIVE) : .latest-scaladoc-jc
+$(TOOLS_JAR_ARCHIVE) : .latest-scaladoc-sc
$(TOOLS_JAR_ARCHIVE) : .latest-scaladoc-rsrc
$(TOOLS_JAR_ARCHIVE) : .latest-dtd2scala-sc
$(TOOLS_JAR_ARCHIVE) : .latest-dtd2scala-rsrc
diff --git a/config/list/scaladoc.lst b/config/list/scaladoc.lst
index 80e53b0a78..353cf762ef 100644
--- a/config/list/scaladoc.lst
+++ b/config/list/scaladoc.lst
@@ -9,7 +9,7 @@ HTMLGenerator.java
HTMLGeneratorCommand.java
HTMLGeneratorPhase.java
HTMLGeneratorPhases.java
-Main.java
+Main.scala
OneTree.java
ScalaSearch.java
StandardDocModule.java
diff --git a/sources/bin/.scala_wrapper.tmpl b/sources/bin/.scala_wrapper.tmpl
index a0d974bdc6..0b60f966d0 100644
--- a/sources/bin/.scala_wrapper.tmpl
+++ b/sources/bin/.scala_wrapper.tmpl
@@ -322,6 +322,26 @@ exec_dtd2scala() {
"$@";
}
+# Starts a program using scaladoc. The given arguments are passed to
+# exec_java. They must, at least, contain the name of the main class.
+exec_scaladoc() {
+ [ $# -gt 0 ] || abort "internal error";
+
+ # compute Java classpath
+ append_path JAVA_CLASSPATH RUNTIME_CLASSES;
+ append_path JAVA_CLASSPATH TOOLS_CLASSES;
+
+ # compute Scala classpath and bootclasspath
+ compute_scala_classpath;
+ compute_scala_bootclasspath;
+
+ # invoke Java
+ exec_java \
+ -Dscala.class.path=`get_os_pathlist "$SCALA_CLASSPATH"` \
+ -Dscala.boot.class.path=`get_os_pathlist "$SCALA_BOOTCLASSPATH"` \
+ "$@";
+}
+
# Starts a program using scalap. The given arguments are passed to
# exec_java. They must, at least, contain the name of the main class.
exec_scalap() {
@@ -520,7 +540,7 @@ case "$SCRIPT" in
scala ) scala "$@";;
scala-info ) scala_info "$@";;
scalac* ) exec_compile scalac.Main "$@";;
- scaladoc* ) exec_compile scala.tools.scaladoc.Main "$@";;
+ scaladoc* ) exec_scaladoc scala.tools.scaladoc.Main "$@";;
scalarun* ) exec_interpret scala.tools.scalai.Main "$@";;
scalaint* ) exec_interpret scala.tools.scalai.Main -interactive "$@";;
dtd2scala* ) exec_dtd2scala scala.tools.dtd2scala.Main "$@";;
diff --git a/sources/scala/tools/scaladoc/Main.scala b/sources/scala/tools/scaladoc/Main.scala
new file mode 100644
index 0000000000..961a4ae4c1
--- /dev/null
+++ b/sources/scala/tools/scaladoc/Main.scala
@@ -0,0 +1,41 @@
+/* ____ ____ ____ ____ ______ *\
+** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala **
+** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL **
+** /_____/\____/\___/\____/____/ **
+\* */
+
+// $Id$
+
+package scala.tools.scaladoc;
+
+import scalac.Global;
+import scalac.util.Reporter;
+
+/**
+ * The main class for scaladoc, an HTML documentation generator
+ * for the programming language Scala.
+ *
+ * @author Vincent Cremet, Stephane Micheloud
+ * @version 1.0
+ */
+object Main {
+
+ val PRODUCT: String =
+ System.getProperty("scala.product", "scaladoc");
+ val VERSION: String =
+ System.getProperty("scala.version", "1.0");
+
+ def main(args: Array[String]): Unit = {
+ val reporter = new Reporter();
+ val command = new HTMLGeneratorCommand(
+ PRODUCT, VERSION, reporter, new HTMLGeneratorPhases());
+ if (command.parse(args) && command.files.list.size() > 0) {
+ val global = new Global(command);
+ global.compile(command.files.toArray(), false);
+ global.stop("total");
+ global.reporter.printSummary();
+ }
+ System.exit(if (reporter.errors() > 0) 1 else 0);
+ }
+
+}