| 
					
				 | 
			
			
				@@ -8,18 +8,31 @@ JTALK=`dirname ${0}`/.. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 USAGE="Usage: $0 [-r] file1 file2 ... file3 Program 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    Will compile a JTalk program into a single javascript file called 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   Program.js (last argument) by concatenating listed files using these rules: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   <Program>.js by concatenating listed files using these rules: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      *.js files are concatenated as is. If not found we look in $JTALK/js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      *.st files are compiled into .js files. If not found we look in $JTALK/st. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     Each file is considered to be a fileout of a single class category of 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     the same name as the file. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     Each file is currently considered to be a fileout of a single class 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     category of the same name as the file. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      NOTE: boot.js and Kernel.js is always added first and init.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      is always added last. Finally main.js is added if found. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      If -r is used we also run node with the resulting Program.js. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     Example invocations: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     Compile Hello.st to Hello.js and create 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     complete program called Program.js: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ntalkc Hello.st Program 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     Compile two different class categories into corresponding .js files, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     link with two existing javascript libraries and create complete 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     program called Program.js: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ntalkc lib1.js lib2.js CategoryOne.st CategoryTwo.st Program 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if [ "$#" == "0" ]; then 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -77,6 +90,7 @@ done 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 cat $JTALK/js/boot.js $JTALK/js/Kernel.js $JTALK/js/Parser.js $JTALK/js/Compiler.js $JTALK/js/init.js $JTALK/nodejs/nodecompile.js > $TMPDIR/compiler-all.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Compile all collected .st files to .js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+echo "Compiling$COMPILED ..." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 node $TMPDIR/compiler-all.js $COMPILE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Verify all .js files corresponding .st files were created, otherwise exit 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -89,20 +103,36 @@ do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   fi  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 done 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# We must have these first... 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+echo "Adding boot.js and Kernel.js ..." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+BOOT="$JTALK/js/boot.js $JTALK/js/Kernel.js" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Compose the complete libs.js file from collected .js filenames. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if [ -n "$LIBS" ]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  echo "LIBS $LIBS" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  echo "Adding libraries $LIBS ..." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   cat $LIBS > $TMPDIR/libs.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   LIBS=$TMPDIR/libs.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Check for init.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if [ -f "init.js" ]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  echo "Adding init.js ..." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  INIT="init.js" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  echo "Adding $JTALK/js/init.js ..." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  INIT=$JTALK/js/init.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Check for main.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if [ -f "main.js" ]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  echo "Adding main.js ..." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   MAIN="main.js" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # And finally concatenate Program.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-cat $JTALK/js/boot.js $JTALK/js/Kernel.js $LIBS $COMPILED $JTALK/js/init.js $MAIN > $PROGRAM.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+echo "Writing $PROGRAM.js ..." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+cat $BOOT $LIBS $COMPILED $INIT $MAIN > $PROGRAM.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+echo "Done." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Optionally run Program and give all args left to it 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if [ -n "$RUN" ]; then 
			 |