1
1
// pscweb.js : support library for Pseudocode Compiler web interface
2
2
3
- var input_index = 0 ;
3
+ var input_index = 0 , pseudocode_examples ;
4
4
5
5
function readline ( ) {
6
- let input = document . getElementById ( 'input' ) . elements [ ' user_input'] . value ;
6
+ let input = document . getElementById ( 'user_input' ) . value ;
7
7
var input_read = '' ;
8
8
var more = input . indexOf ( ',' , input_index ) ;
9
9
if ( more != - 1 ) {
@@ -14,15 +14,20 @@ function readline() {
14
14
else {
15
15
input_read = input . substring ( input_index ) ;
16
16
}
17
- print ( input_read ) ;
17
+ if ( input_read != '' ) {
18
+ print ( input_read ) ;
19
+ }
20
+ else {
21
+ print ( '#Empty input#' ) ;
22
+ }
18
23
return input_read ;
19
24
}
20
25
21
26
function print ( line ) {
22
- let max_lines = 28 , max_length = 60 ;
23
- let lines = document . getElementById ( 'program_output' ) . innerHTML . split ( '\n' ) . length ;
27
+ let max_lines = 26 , max_length = 60 ;
28
+ let lines = document . getElementById ( 'program_output' ) . innerHTML . split ( '\n' ) . length + line . length / max_length ;
24
29
if ( lines > max_lines ) {
25
- alert ( 'Too many lines of output. Please clear the output window! ' ) ;
30
+ alert ( 'Too many lines of output! Please clear the output window. ' ) ;
26
31
throw new Error ( 'Window full' ) ;
27
32
}
28
33
while ( line . length > max_length ) {
@@ -36,6 +41,10 @@ function clear_output() {
36
41
document . getElementById ( 'program_output' ) . innerHTML = '' ;
37
42
}
38
43
44
+ function clear_input ( ) {
45
+ document . getElementById ( 'input' ) . elements [ 'program_source' ] . value = '' ;
46
+ }
47
+
39
48
function toutf8 ( str ) {
40
49
var urifmt = '' + encodeURIComponent ( str ) , x = function ( s ) {
41
50
return String . fromCharCode ( parseInt ( s . substring ( 1 ) , 16 ) ) ;
@@ -77,3 +86,28 @@ function run() {
77
86
document . body . appendChild ( script ) ;
78
87
}
79
88
89
+ function createmenu ( ) {
90
+ var container = document . getElementById ( 'examples' ) ;
91
+ if ( pseudocode_examples == undefined ) {
92
+ container . innerHTML = '<p onclick="alert(\'Could not load pscexamples.js\');">No examples</p>' ;
93
+ return ;
94
+ }
95
+ for ( var e = 0 ; e != pseudocode_examples . length ; e ++ ) {
96
+ container . innerHTML += '<p onclick="menuload(\'' + pseudocode_examples [ e ] . name + '\');">' + pseudocode_examples [ e ] . name + '</p>\n' ;
97
+ }
98
+ }
99
+
100
+ function menuload ( program ) {
101
+ var container = document . getElementById ( 'input' ) . elements [ 'program_source' ] ;
102
+ if ( container . value != '' ) {
103
+ alert ( 'Please clear input window first!' ) ;
104
+ return ;
105
+ }
106
+ for ( var e = 0 ; e != pseudocode_examples . length ; e ++ ) {
107
+ if ( ( pseudocode_examples [ e ] . name == program ) && ( pseudocode_examples [ e ] . code != undefined ) ) {
108
+ container . value = pseudocode_examples [ e ] . code ;
109
+ return ;
110
+ }
111
+ }
112
+ alert ( 'Could not load program ' + program ) ;
113
+ }
0 commit comments