Skip to content

Commit 4b68ebe

Browse files
committed
bam
1 parent 6cf820b commit 4b68ebe

File tree

7 files changed

+434
-281
lines changed

7 files changed

+434
-281
lines changed

v5-unity/java.html

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2+
<html xmlns="http://www.w3.org/1999/xhtml">
3+
4+
<!--
5+
Python Tutor: https://github.com/pgbovine/OnlinePythonTutor/
6+
Copyright (C) Philip Guo (philip@pgbovine.net)
7+
LICENSE: https://github.com/pgbovine/OnlinePythonTutor/blob/master/LICENSE.txt
8+
-->
9+
10+
<head>
11+
<title>Java Tutor - Visualize Java code execution to learn Java online</title>
12+
13+
<meta http-equiv="Content-type" content="text/html; charset=UTF-8"/>
14+
15+
<script type="text/javascript">
16+
window.optOverride = {}
17+
window.optOverride.frontendLang = 'java'; // hacky override before including visualize.bundle.js
18+
</script>
19+
20+
<!-- let Webpack take care of everything. Use the [hash] feature to
21+
create unique filenames for releases:
22+
https://webpack.github.io/docs/long-term-caching.html -->
23+
<script type="text/javascript" src="build/visualize.bundle.js" charset="utf-8"></script>
24+
25+
<!-- insert google-analytics.txt contents here -->
26+
27+
</head>
28+
29+
<body>
30+
31+
<table id="experimentalHeader">
32+
<tr>
33+
<td valign="top">
34+
35+
<div id="ssDiv">
36+
<button id="sharedSessionBtn" type="button" class="togetherjsBtn">
37+
Start shared session
38+
</button>
39+
<div style="font-size: 7pt; margin-left: 2px; margin-top: 3px;">
40+
<a href="https://www.youtube.com/watch?v=Z2TIjNArOK4" target="_blank">What are shared sessions?</a>
41+
</div>
42+
</div>
43+
44+
<div id="sharedSessionDisplayDiv" style="display: none;">
45+
<button id="stopTogetherJSBtn" type="button" class="togetherjsBtn">
46+
End shared session
47+
</button>
48+
49+
<div style="width: 200px; font-size: 8pt; color: #666; margin-top: 5px;">
50+
Your chat logs and code may be recorded, anonymized, and analyzed for research.
51+
</div>
52+
</div>
53+
54+
</td>
55+
<td valign="top">
56+
57+
<div id="togetherjsStatus"></div>
58+
59+
<div id="surveyHeader"></div>
60+
61+
</td>
62+
</tr>
63+
</table>
64+
65+
66+
<div id="pyInputPane">
67+
68+
<div id="codeInputWarnings">Write code in
69+
70+
<select id="pythonVersionSelector">
71+
<option value="java">Java 8</option>
72+
</select>
73+
74+
</div>
75+
76+
<div id="someoneIsTypingDiv" style="color: #e93f34; font-weight: bold; display: none;">Someone is typing ...</div>
77+
78+
<div id="codeInputPane"></div> <!-- populate with Ace code editor instance -->
79+
<div id="frontendErrorOutput"></div>
80+
<div id="surveyPane"></div>
81+
82+
<p>
83+
<button id="executeBtn" class="bigBtn" type="button">Visualize Execution</button>
84+
<button style="margin-left: 20px;" id="liveModeBtn" class="bigBtn" type="button">Live Programming Mode <font color="#e93f34">(NEW!)</font></button>
85+
</p>
86+
87+
88+
<div id="javaOptionsPane" style="margin-top: 20px;">
89+
[<i>coming soon!</i>] Java options: pass in command-line arguments and feed user input to stdin
90+
</div>
91+
92+
93+
<div id="optionsPane" style="margin-top: 20px; line-height: 150%;">
94+
<select id="cumulativeModeSelector" style="display: none;">
95+
<option value="false">hide exited frames [default]</option>
96+
<option value="true">show all frames (Python)</option>
97+
</select>
98+
<select id="heapPrimitivesSelector">
99+
<option value="false">inline primitives &amp; nested objects [default]</option>
100+
<option value="true">render all objects on the heap (Python/Java)</option>
101+
</select>
102+
<select id="textualMemoryLabelsSelector">
103+
<option value="false">draw pointers as arrows [default]</option>
104+
<option value="true">use text labels for pointers</option>
105+
</select>
106+
</div>
107+
108+
109+
<div id="testCasesParent"></div>
110+
111+
<div id="exampleSnippets"></div>
112+
113+
</div>
114+
115+
<div id="pyOutputPane"></div>
116+
117+
<div id="footer"></div>
118+
119+
<!-- for Codeopticon,
120+
adapted from: http://reason.cs.illinois.edu/wenpu1/chatbox.html -->
121+
<div id="chat_div"></div>
122+
123+
</body>
124+
</html>

v5-unity/js/example-links.ts

Lines changed: 164 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
export var pythonExamples = `<p style="margin-top: 25px; font-weight: bold;">Python Examples</p>
1+
export var exampleHeaderHtml = `<p>The examples below illustrate some of
2+
this tool's visualization capabilities but are <em>not</em> meant as
3+
standalone programming lessons. For effective learning, people often use
4+
this tool as a supplement to textbooks, lecture notes, and online
5+
programming tutorials.</p>`
6+
7+
export var pythonExamplesHtml = `<p style="margin-top: 25px; font-weight: bold;">Python Examples</p>
28
39
<p style="margin-top: 10px;">Basic:
410
@@ -77,8 +83,63 @@ export var pythonExamples = `<p style="margin-top: 25px; font-weight: bold;">Pyt
7783
<a class="exampleLink" id="nonlocalLink" href="#">nonlocal</a>
7884
</p>`;
7985

80-
81-
export var javaExamples = `<p style="margin-top: 25px; font-weight: bold;">Java Examples</p>
86+
export var PY2_EXAMPLES = {
87+
tutorialExampleLink: "py_tutorial.txt",
88+
strtokExampleLink: "strtok.txt",
89+
listCompLink: "list-comp.txt",
90+
compsLink: "comprehensions.txt",
91+
fibonacciExampleLink: "fib.txt",
92+
memoFibExampleLink: "memo_fib.txt",
93+
factExampleLink: "fact.txt",
94+
filterExampleLink: "filter.txt",
95+
insSortExampleLink: "ins_sort.txt",
96+
aliasExampleLink: "aliasing.txt",
97+
happyExampleLink: "happy.txt",
98+
newtonExampleLink: "sqrt.txt",
99+
oopSmallExampleLink: "oop_small.txt",
100+
mapExampleLink: "map.txt",
101+
rawInputExampleLink: "raw_input.txt",
102+
oop1ExampleLink: "oop_1.txt",
103+
oop2ExampleLink: "oop_2.txt",
104+
inheritanceExampleLink: "oop_inherit.txt",
105+
sumExampleLink: "sum.txt",
106+
pwGcdLink: "wentworth_gcd.txt",
107+
pwSumListLink: "wentworth_sumList.txt",
108+
towersOfHanoiLink: "towers_of_hanoi.txt",
109+
pwTryFinallyLink: "wentworth_try_finally.txt",
110+
sumCubesLink: "sum-cubes.txt",
111+
decoratorsLink: "decorators.txt",
112+
genPrimesLink: "gen_primes.txt",
113+
genExprLink: "genexpr.txt",
114+
closure1Link: "closures/closure1.txt",
115+
closure2Link: "closures/closure2.txt",
116+
closure3Link: "closures/closure3.txt",
117+
closure4Link: "closures/closure4.txt",
118+
closure5Link: "closures/closure5.txt",
119+
lambdaParamLink: "closures/lambda-param.txt",
120+
aliasing1Link: "aliasing/aliasing1.txt",
121+
aliasing2Link: "aliasing/aliasing2.txt",
122+
aliasing3Link: "aliasing/aliasing3.txt",
123+
aliasing4Link: "aliasing/aliasing4.txt",
124+
aliasing5Link: "aliasing/aliasing5.txt",
125+
aliasing6Link: "aliasing/aliasing6.txt",
126+
aliasing7Link: "aliasing/aliasing7.txt",
127+
aliasing8Link: "aliasing/aliasing8.txt",
128+
ll1Link: "linked-lists/ll1.txt",
129+
ll2Link: "linked-lists/ll2.txt",
130+
sumListLink: "sum-list.txt",
131+
varargsLink: "varargs.txt",
132+
forElseLink: "for-else.txt",
133+
metaclassLink: "metaclass.txt",
134+
};
135+
136+
export var PY3_EXAMPLES = {
137+
tortureLink: "closures/student-torture.txt",
138+
nonlocalLink: "nonlocal.txt",
139+
};
140+
141+
142+
export var javaExamplesHtml = `<p style="margin-top: 25px; font-weight: bold;">Java Examples</p>
82143
83144
<p>
84145
Basic:
@@ -131,8 +192,41 @@ Misc:
131192
132193
<p style="margin-top: 5px;">(All Java examples created by <a href="https://github.com/daveagp">David Pritchard</a>)</p>`;
133194

195+
export var JAVA_EXAMPLES = {
196+
javaVarLink: 'Variables.java',
197+
javaCFLink: 'ControlFlow.java',
198+
javaSqrtLink: 'Sqrt.java',
199+
javaExecLimitLink: 'ExecLimit.java',
200+
javaStringsLink: 'Strings.java',
201+
202+
javaPassByValLink: 'PassByValue.java',
203+
javaRecurLink: 'Recursion.java',
204+
javaSOLink: 'StackOverflow.java',
205+
206+
javaRolexLink: 'Rolex.java',
207+
javaPersonLink: 'Person.java',
208+
javaComplexLink: 'Complex.java',
209+
javaCastingLink: 'Casting.java',
210+
211+
javaLLLink: 'LinkedList.java',
212+
javaStackQueueLink: 'StackQueue.java',
213+
javaPostfixLink: 'Postfix.java',
214+
javaSTLink: 'SymbolTable.java',
215+
216+
javaToStringLink: 'ToString.java',
217+
javaReflectLink: 'Reflect.java',
218+
javaExceptionLink: 'Exception.java',
219+
javaExceptionFlowLink: 'ExceptionFlow.java',
220+
javaTwoClassesLink: 'TwoClasses.java',
221+
222+
javaForestLink: 'Forest.java',
223+
javaKnapsackLink: 'Knapsack.java',
224+
javaStaticInitLink: 'StaticInitializer.java',
225+
javaSyntheticLink: 'Synthetic.java',
226+
};
134227

135-
export var jsExamples = `<p style="margin-top: 25px; font-weight: bold;">JavaScript Examples</p>
228+
229+
export var jsExamplesHtml = `<p style="margin-top: 25px; font-weight: bold;">JavaScript Examples</p>
136230
137231
<p style="margin-top: 5px;">
138232
<a class="exampleLink" id="jsFactExLink" href="#">factorial</a> |
@@ -144,8 +238,18 @@ export var jsExamples = `<p style="margin-top: 25px; font-weight: bold;">JavaScr
144238
<a class="exampleLink" id="jsInhExLink" href="#">inheritance</a>
145239
</p>`;
146240

241+
export var JS_EXAMPLES = {
242+
jsFactExLink: 'fact.js',
243+
jsDatatypesExLink: 'data-types.js',
244+
jsExceptionExLink: 'caught-exception.js',
245+
jsClosureExLink: 'closure1.js',
246+
jsShadowingExLink: 'var-shadowing2.js',
247+
jsConstructorExLink: 'constructor.js',
248+
jsInhExLink: 'inheritance.js',
249+
};
250+
147251

148-
export var tsExamples = `<p style="margin-top: 25px; font-weight: bold;">TypeScript Examples</p>
252+
export var tsExamplesHtml = `<p style="margin-top: 25px; font-weight: bold;">TypeScript Examples</p>
149253
150254
<p style="margin-top: 5px;">
151255
<a class="exampleLink" id="tsHelloExLink" href="#">hello</a> |
@@ -154,8 +258,15 @@ export var tsExamples = `<p style="margin-top: 25px; font-weight: bold;">TypeScr
154258
<a class="exampleLink" id="tsGreeterGenericsExLink" href="#">generics</a>
155259
</p>`;
156260

261+
export var TS_EXAMPLES = {
262+
tsHelloExLink: 'hello.ts',
263+
tsGreeterExLink: 'greeter.ts',
264+
tsGreeterGenericsExLink: 'greeter-generics.ts',
265+
tsInheritanceExLink: 'inheritance.ts',
266+
};
267+
157268

158-
export var rubyExamples = `<p style="margin-top: 25px; font-weight: bold;">Ruby Examples</p>
269+
export var rubyExamplesHtml = `<p style="margin-top: 25px; font-weight: bold;">Ruby Examples</p>
159270
160271
<p style="margin-top: 5px;">
161272
<a class="exampleLink" id="rubyContainersLink" href="#">Containers</a> |
@@ -178,8 +289,27 @@ export var rubyExamples = `<p style="margin-top: 25px; font-weight: bold;">Ruby
178289
<a class="exampleLink" id="rubyMegagreeterLink" href="#">Megagreeter</a>
179290
</p>`;
180291

181-
182-
export var cExamples = `<p style="margin-top: 25px; font-weight: bold;">C Examples</p>
292+
export var RUBY_EXAMPLES = {
293+
rubyBlocksLink: 'blocks-basic.rb',
294+
rubyBlocksScopingLink: 'blocks-scoping-2.rb',
295+
rubyInheritanceLink: 'class-inheritance.rb',
296+
rubyConstantsLink: 'constants-4.rb',
297+
rubyContainersLink: 'container-data-types.rb',
298+
rubyGlobalsLink: 'globals.rb',
299+
rubyLambdaScopingLink: 'lambda-scoping-2.rb',
300+
rubyMegagreeterLink: 'megagreeter.rb',
301+
rubyProcLink: 'proc-basic.rb',
302+
rubyProcScopingLink: 'proc-scoping.rb',
303+
rubySymbolsLink: 'symbols.rb',
304+
rubyPrivateProtectedLink: 'class-private-protected.rb',
305+
rubyInstClassVarsComplexLink: 'inst-class-vars-complex.rb',
306+
rubyToplevelLink: 'toplevel-inst-class-vars.rb',
307+
rubyBlocksScoping3Link: 'blocks-scoping-3.rb',
308+
rubyProcReturnLink: 'proc-return.rb',
309+
};
310+
311+
312+
export var cExamplesHtml = `<p style="margin-top: 25px; font-weight: bold;">C Examples</p>
183313
184314
<p style="margin-top: 5px;">
185315
<a class="exampleLink" id="cMengThesisLink" href="#">Thesis</a> |
@@ -196,8 +326,23 @@ export var cExamples = `<p style="margin-top: 25px; font-weight: bold;">C Exampl
196326
<a class="exampleLink" id="cTypedefLink" href="#">Typedef</a>
197327
</p>`;
198328

329+
export var C_EXAMPLES = {
330+
cArrOverflowLink: 'array-overflow.c',
331+
cArrParamLink: 'array-param.c',
332+
cNestedStructLink: 'fjalar-NestedStructTest.c',
333+
cPtrLevelsLink: 'fjalar-pointer-levels.c',
334+
//cStringArraysLink: 'fjalar-string-arrays.c',
335+
cGlobalsLink: 'globals.c',
336+
cMengThesisLink: 'meng-thesis-example.c',
337+
cPtrChainLink: 'pointer-chain.c',
338+
cPtrWildLink: 'pointers-gone-wild.c',
339+
cStringRevLink: 'string-reverse-inplace.c',
340+
cStructLink: 'struct-basic.c',
341+
cTypedefLink: 'typedef-test.c',
342+
};
343+
199344

200-
export var cppExamples = `<p style="margin-top: 25px; font-weight: bold;">C++ Examples</p>
345+
export var cppExamplesHtml = `<p style="margin-top: 25px; font-weight: bold;">C++ Examples</p>
201346
202347
<p style="margin-top: 5px;">
203348
<a class="exampleLink" id="cppFirstLink" href="#">Basic</a> |
@@ -208,3 +353,13 @@ export var cppExamples = `<p style="margin-top: 25px; font-weight: bold;">C++ Ex
208353
<a class="exampleLink" id="cppInheritLink" href="#">Inheritance</a> |
209354
<a class="exampleLink" id="cppVirtualLink" href="#">Virtual method</a>
210355
</p>`;
356+
357+
export var CPP_EXAMPLES = {
358+
cppClassLink: 'cpp-class-basic.cpp',
359+
cppDateLink: 'cpp-class-date.cpp',
360+
cppClassPtrLink: 'cpp-class-pointers.cpp',
361+
cppFirstLink: 'cpp-first.cpp',
362+
cppInheritLink: 'cpp-inheritance.cpp',
363+
cppPassRefLink: 'cpp-pass-by-ref.cpp',
364+
cppVirtualLink: 'cpp-virtual-method.cpp',
365+
};

0 commit comments

Comments
 (0)