java/javadoc/ch/wlkl/wsh/Compiler.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_05) on Sat Jul 22 13:32:41 CEST 2017 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Compiler</title>
<meta name="date" content="2017-07-22">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Compiler";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Compiler.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../ch/wlkl/wsh/Cat.html" title="class in ch.wlkl.wsh"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../ch/wlkl/wsh/Dir.html" title="class in ch.wlkl.wsh"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?ch/wlkl/wsh/Compiler.html" target="_top">Frames</a></li>
<li><a href="Compiler.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.ch.wlkl.wsh.Top">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">ch.wlkl.wsh</div>
<h2 title="Class Compiler" class="title">Class Compiler</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../ch/wlkl/wsh/Top.html" title="class in ch.wlkl.wsh">ch.wlkl.wsh.Top</a></li>
<li>
<ul class="inheritance">
<li>ch.wlkl.wsh.Compiler</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">Compiler</span>
extends <a href="../../../ch/wlkl/wsh/Top.html" title="class in ch.wlkl.wsh">Top</a></pre>
<div class="block">compiles shell or data syntax to javaCode and a temporary JavaClass, subclass of <a href="../../../ch/wlkl/wsh/Run.html" title="class in ch.wlkl.wsh"><code>Run</code></a> and loads it into the virtual machine.
 
 <br><br><b>Attention:</b> java implements an old version of wsh, <a href="https://www.wlkl.ch/index.php/Inf/WshSyn">the rexx version</a> contains much innovation since then.
 
 <h1>The main feature of this shell language</h1>
 <ul>
 <li>standard input and ouput with a unix-shell like syntax, to the file system, temporary buffers and heredata
 <li>piping of statemts (using the output of one statement as input for the next)
 <li>variable expansion in heredata or java
 <li>integration with java, but the design is as much language independent as possible, there is a version z/OS REXX under construction
 </ul>
 
 <h1>Shell Syntax</h1>
 <ul>
 <li id="syData"><B>data = (spCom* | exprD) (nl exprD)* (nl spCom*)? ((stmt | input) data)*</B>
 <br>data consists of literal data line interpersed with variable expansions, input from files or heredata and statements.
  Partial lines are ignored, if they consist only of spaces and comments.
 <li id="syShell"><B>shell = pipe ? ('$;' pipe?)*</B>
 <br>Pipes separated by $;. Caution: Semicolons without $ do not terminate a pipe but are part of the underlying language.
 <li id="syExpr"><B>exprD = (( notDoNl | primary ) comment* )+</B>
 <br>expressions consists of notDoNl interpreted litaral constants and primaries, comments are ignored.
 <li><B>exprS = spCom* exprD spCom*</B>
 <br>a flavour of expression ignoring leading and trailing spaces
 <li><B>exprW = spCom* (( shWord | primary ) comment* )+ spCom*</B>
 <br>a flavour of expression ignoring leading and trailing spaces and text only words
 <li id=syLang><B>lang = (( notDoNl | primary ) comment* )+</B>
 <br> syntactically the same as <B>exprD</B>, however <B>notDoNl</B> is interpreted as language source. This may yield a java expression or java statements. Comments are replaced by a single space.
 <li id=syPrimary><B>primary = vars | string | '$(' lang '$)' | '$-[' data '$]' | '$-{' shell '$}' | $-compShell | $-compData</B>
 <br>the $-comp... primaries compile standard input as shell, respectively data and return the resulting instance of <a href="../../../ch/wlkl/wsh/Run.html" title="class in ch.wlkl.wsh"><code>Run</code></a>
 <li><B>vars = '$' shName | '${' ('?' | '&gt;')? exprW colCla? '}'</B>
 <br>retrieves the contents of a variable from the variable pool, tests its existence or reads from std input, see <A hRef=#seVars>semantics</A>
 <li><B>colCla =  spCom ':' spCom shWord</B>S
 <li id=syInput><b>input  = '$&lt;' ioOpts exprS | hereData</b>
 <li id=syHereData><b>hereData  = '$&lt;&lt;' ioOpts shWord sp* (nl notNl*)* nl shWord</b>
 <li> <b>output = ('$&gt;' | '$&gt;&gt;' | '$&amp;') ioOpts exprS</b>  
 <li> <b>ioOpts = '+'? '-'? ( '?' |  '#' | '&amp;' | '[' | '{' )? </b>
 <br> option characters to specify the meaning of exprS fileName see <A href=#seIoOpts>semantics</A>
 <li id=syPipe><B>pipe = ((input | output) spNlCom*)* (stmts ( '$|' colCla? stmts)*)?</b>
 <br>this is execution order, syntax order is free
 <li id=syStmts><B>stmts = ((stmt | lang) spNlCom*)+</b>
 <li id=syStmt><b>stmt =  ass | '$@{' shell '$}' | '$[' data '$]'| '$$' exprS  | '$?' lang  |'$@for' exprW colCla? stmt | '$@run' primary</b>
 <li><b>ass = '$=' exprW colCla? ( '=' exprS | '?' lang)</B>
 </ul>
 <h1>Lexicals</h1>
 <ul>
 <li><b>string = '$''' ((* notNl not '''' *) | '''''')* '''' | '$?' ((* notNl not '?' *) | '??')* '?''</b>
 <br>a string enclosed in single or double quotes, prefixed by a dollar. Inside, two quotes stand for a single one.
 <li><b>shName = (* starting with a letter followed by any number of digits or characters *)</b>
 <li><b>shWord = (* 1 or more characters not sp, nl, {, }, =, ? or : *)</b>
 <br>
 <li><b>spNlCom = nl | sp | comment</b>
 <li><b>spCom = sp | comment</b>
 <li><b> comment = '$**' notNl* | '$*+' notNl* nl | '$*(' (comment | hereData | string | char)* '$*)'</b>
 <br>
 <li> notDoNl = (* one character from notNl but not '$' *)
 <li> notNl = (* one character not nl *)
 <li> nl = (* newLine character(s) or record switch *)
 <li id="sySp"> sp = (* one space character ' ', tab etc., but not nl *)
 </ul>
 <h1>Semantics</h1>
 The run of a program fragment has the following effects
 <ul>
 <li>it reads from standard input
 <li>it writes to standard output
 <li>it accesses and updates the variable pool
 <li>runs java code either from <b>lang</b> constructs or by method calls from the accesses to the variable pool
 </ul>
 The semantics of the syntactical constructs
 <ul>
 <li><b>data</b> writes in the given sequence to standard output: expressions, the output of statements and the contents of inputs.
 <li><b>shell</b> writes the output of its pipes to standard output.
 <li><b>exprD, exprS, exprW</b> if it constists of a single primary returns this primary otherwise a String consisting of the concatenation of each primary and literal
 <li><B>primary</B> yields a String or an instance of another java class.
 <ul><li id=seVars><B>vars</B> retrieves the contents of a variable from the variable pool, tests its existence or reads from std input. Nesting is supported. The function depends on the options:
 <ul>
 <li> <B>?</B> returns a boolean, whether the variable named exprW is defined in the variable pool. 
 <li> <B>&gt;</B> reads from standard input and puts the line read into the variable named exprW. returns false at end of file.
 <li> <B>neither</B> returns the contents of the variable named exprW or fails if it is undefined
 <li> <B>colCla</B> returns an object of the specified class, if not specified shell infers the type
 </ul>  
 <li><B>string</B> a string constant
 <li><B>'$(' lang '$)'</B> lang must be a java expression. Yields the object (of any class) of this java expression.
 <li><B>'$-[' data '$]'</B> yields a string: the concatenation of all lines of data, separated by a single space.
 <li><B>$-{' shell '$}'</B> yields a string: shell is exececuted and the lines of its standard output concatenated, separated by a single space. 
 <li><B>$-compShell, $-compData</B> compiles standard input as shell, respectively data yields the resulting instance of <a href="../../../ch/wlkl/wsh/Run.html" title="class in ch.wlkl.wsh"><code>Run</code></a>
 </ul>
 <li><b>colCla</b> designates the type (class) of an expression or declares the type of a variable. see <A hRef=#Typing>Typing</A>
 <li><b>input</b> in a statment copies the specified <a href="../../../ch/wlkl/wsh/Read.html" title="interface in ch.wlkl.wsh"><code>Read</code></a>, File, etc. to std output. As a io redirection of a pipe defines (std) input.
 <li><b>hereData</b> the following source lines are used as input, depending on ioOpts literally or compiled.
 <li><b>output</b> In a io redirection of a pipe defines (std) output.
 <li id=seIoOpts><b>ioOpts</b> option characters to specify the meaning of the subsequent exprW. Which options are valid is contextdependent.
 <br>general
 <ul> 
 <li> <B>+</B> for input: concatenenate this input with the next input, for an external FD reroute the following inputOutput to this external FD
 <li> <B>-</B> do not open and close an inputOutput, do not allocate and deallocate an external FD
 </ul>
 not for hereData see <a href="../../../ch/wlkl/wsh/Cat.html#make-java.lang.String-java.lang.Object-"><code>Cat.make(String, Object)</code></a>
 <ul> 
 <li> <B>?</B> exprS yields a languge Object that will be transformed to an <a href="../../../ch/wlkl/wsh/OpenClose.html" title="interface in ch.wlkl.wsh"><code>OpenClose</code></a> by <a href="../../../ch/wlkl/wsh/Cat.html#make-java.lang.String-java.lang.Object-"><code>Cat.make(String, Object)</code></a>
 <li> <B>&amp;</B> exprS is a String specification of an external FD
 <li> <B>#</B> exprS is a name in the variable pool. If it does not exist, a new Buf&lt;String&gt; is put there. If it exists the retrieved value is interpreted as with the ? option.
 <li> otherwise exprS is a filename of the external file system 
 </ul>
 only for hereData 
 <ul> 
 <li> <B>[</B> interpret this hereData as <A hRef=#syData>data</A>
 <li> <B>{</B> interpret this hereData as <A hRef=#syShell>shell</A>
 <li> otherwise this hereData is interpreted literally 
 </ul>
 <li><B>pipe</B> a pipe. input get std input (which may consist of a concatenation) of the whole pipe (, output std output. Additionally external FD may be allocated for the duration of the whole pipe. $| stands for the rerouting of std output of the previous stmts with std input of the following stmts.
 <li><B>stmts</B> java code interpreted as java statements possibly interpersed with stmt. 
 <li><B>stmt</B> a shell statement is
 <ul><li><B>ass</B> assigns a variable in the variable pool.
 <li><B>'$@{' shell '$}'</B> is a block simply executing the shell.
 <li><B>'$@[' data '$]'</B> writes data to std output.
 <li><B>'$$', '$?'</B> write the subsequent shell respectively language expression to std output.
 <li><B>$@for</B> read std input until end of input. For each object execute the subsequent statement after assigning the object read to the variable name exprW.
 <li><B>$@run</B> the expression must yield an instance of <a href="../../../ch/wlkl/wsh/Run.html" title="class in ch.wlkl.wsh"><code>Run</code></a> which is run.
 </ul>
 </ul>
 <h1 id=Typing>Typing</h1>
 <ul>
 <li>The $| operator with the <B>colCla</B> defines the type of standard output within this pipe fragment.
 <li>The of a constant variable name of the variable pool is remember when the <B>colCla</B> option is used in the assignment, or the type of the expression can be deduced. The type is remembered in the following text.
 <li>the type of an expression of a single primary is the type of the primary, for all other expression it is String
 </ul>
 <h1>Tutorial</h1>
 <h1>Plans, toDo</h1>
 <ul>
 <li>simple include facility and general compileTime processing and generating permanent named classes
 <li> Env or EnvMan without typing?
 </ul></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.ch.wlkl.wsh.Top">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;ch.wlkl.wsh.<a href="../../../ch/wlkl/wsh/Top.html" title="class in ch.wlkl.wsh">Top</a></h3>
<code><a href="../../../ch/wlkl/wsh/Top.html#emptyStrings">emptyStrings</a>, <a href="../../../ch/wlkl/wsh/Top.html#trace">trace</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../ch/wlkl/wsh/Compiler.html#Compiler-ch.wlkl.wsh.JavaCmpLoad-ch.wlkl.wsh.Read-">Compiler</a></span>(<a href="../../../ch/wlkl/wsh/JavaCmpLoad.html" title="class in ch.wlkl.wsh">JavaCmpLoad</a>&lt;?&gt;&nbsp;ldr,
        <a href="../../../ch/wlkl/wsh/Read.html" title="interface in ch.wlkl.wsh">Read</a>&lt;java.lang.String&gt;&nbsp;src)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>java.lang.Class&lt;? extends <a href="../../../ch/wlkl/wsh/Run.html" title="class in ch.wlkl.wsh">Run</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../ch/wlkl/wsh/Compiler.html#compileClass-char-java.lang.String-">compileClass</a></span>(char&nbsp;type,
            java.lang.String&nbsp;name)</code>
<div class="block">compile a subclass of <tt>Run</tt></div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.lang.Class&lt;? extends <a href="../../../ch/wlkl/wsh/Run.html" title="class in ch.wlkl.wsh">Run</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../ch/wlkl/wsh/Compiler.html#compileClassCatch-char-java.lang.String-">compileClassCatch</a></span>(char&nbsp;type,
                 java.lang.String&nbsp;name)</code>
<div class="block">return <a href="../../../ch/wlkl/wsh/Compiler.html#compileClass-char-java.lang.String-"><code>compileClass(char, String)</code></a> or null if an exception is catched</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../ch/wlkl/wsh/Run.html" title="class in ch.wlkl.wsh">Run</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../ch/wlkl/wsh/Compiler.html#compileInstance-char-">compileInstance</a></span>(char&nbsp;type)</code>
<div class="block">return an instance of a newly compiled subclass of <a href="../../../ch/wlkl/wsh/Run.html" title="class in ch.wlkl.wsh"><code>Run</code></a></div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.ch.wlkl.wsh.Top">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;ch.wlkl.wsh.<a href="../../../ch/wlkl/wsh/Top.html" title="class in ch.wlkl.wsh">Top</a></h3>
<code><a href="../../../ch/wlkl/wsh/Top.html#fail-java.lang.String-">fail</a>, <a href="../../../ch/wlkl/wsh/Top.html#name-java.lang.Object-">name</a>, <a href="../../../ch/wlkl/wsh/Top.html#nameCnt-int-">nameCnt</a>, <a href="../../../ch/wlkl/wsh/Top.html#say-java.lang.String-">say</a>, <a href="../../../ch/wlkl/wsh/Top.html#sFail-java.lang.Object-java.lang.String-">sFail</a>, <a href="../../../ch/wlkl/wsh/Top.html#sFail-java.lang.String-">sFail</a>, <a href="../../../ch/wlkl/wsh/Top.html#sSay-java.lang.Object-java.lang.String-">sSay</a>, <a href="../../../ch/wlkl/wsh/Top.html#sSay-java.lang.String-">sSay</a>, <a href="../../../ch/wlkl/wsh/Top.html#sTrc-java.lang.Object-java.lang.String-">sTrc</a>, <a href="../../../ch/wlkl/wsh/Top.html#sTrc-java.lang.String-">sTrc</a>, <a href="../../../ch/wlkl/wsh/Top.html#toString--">toString</a>, <a href="../../../ch/wlkl/wsh/Top.html#trc-java.lang.String-">trc</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="Compiler-ch.wlkl.wsh.JavaCmpLoad-ch.wlkl.wsh.Read-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Compiler</h4>
<pre>public&nbsp;Compiler(<a href="../../../ch/wlkl/wsh/JavaCmpLoad.html" title="class in ch.wlkl.wsh">JavaCmpLoad</a>&lt;?&gt;&nbsp;ldr,
                <a href="../../../ch/wlkl/wsh/Read.html" title="interface in ch.wlkl.wsh">Read</a>&lt;java.lang.String&gt;&nbsp;src)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="compileInstance-char-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>compileInstance</h4>
<pre>public&nbsp;<a href="../../../ch/wlkl/wsh/Run.html" title="class in ch.wlkl.wsh">Run</a>&nbsp;compileInstance(char&nbsp;type)</pre>
<div class="block">return an instance of a newly compiled subclass of <a href="../../../ch/wlkl/wsh/Run.html" title="class in ch.wlkl.wsh"><code>Run</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - type for <a href="../../../ch/wlkl/wsh/Compiler.html#compileClass-char-java.lang.String-"><code>compileClass(char, String)</code></a></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the new instance of the newly compiled subclass of <a href="../../../ch/wlkl/wsh/Run.html" title="class in ch.wlkl.wsh"><code>Run</code></a></dd>
</dl>
</li>
</ul>
<a name="compileClassCatch-char-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>compileClassCatch</h4>
<pre>public&nbsp;java.lang.Class&lt;? extends <a href="../../../ch/wlkl/wsh/Run.html" title="class in ch.wlkl.wsh">Run</a>&gt;&nbsp;compileClassCatch(char&nbsp;type,
                                                        java.lang.String&nbsp;name)</pre>
<div class="block">return <a href="../../../ch/wlkl/wsh/Compiler.html#compileClass-char-java.lang.String-"><code>compileClass(char, String)</code></a> or null if an exception is catched</div>
</li>
</ul>
<a name="compileClass-char-java.lang.String-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>compileClass</h4>
<pre>public&nbsp;java.lang.Class&lt;? extends <a href="../../../ch/wlkl/wsh/Run.html" title="class in ch.wlkl.wsh">Run</a>&gt;&nbsp;compileClass(char&nbsp;type,
                                                   java.lang.String&nbsp;name)</pre>
<div class="block">compile a subclass of <tt>Run</tt></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - type for <a href="../../../ch/wlkl/wsh/Compiler.html#compileSrc-char-"><code>compileSrc(char)</code></a></dd>
<dd><code>name</code> - the name of the class (may include package), if null a unique name is generated</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the compiled class</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Compiler.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../ch/wlkl/wsh/Cat.html" title="class in ch.wlkl.wsh"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../ch/wlkl/wsh/Dir.html" title="class in ch.wlkl.wsh"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?ch/wlkl/wsh/Compiler.html" target="_top">Frames</a></li>
<li><a href="Compiler.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.ch.wlkl.wsh.Top">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>