@@ -38,6 +38,19 @@ varDefinition = (defObj, state) => {
3838
3939varValue = ( varKey , state ) => { return state [ varKey ] }
4040
41+ let ifStatement = ( stmt , key , state ) => {
42+ let condition = stmt [ key ]
43+ if ( exec ( condition , state ) ) {
44+ let thenStatements = stmt [ 'then' ]
45+ return interpret ( thenStatements , state )
46+ } else {
47+ let elseStatements = stmt [ 'else' ] ;
48+ if ( typeof elseStatements !== 'undefined' ) {
49+ return interpret ( elseStatements , state )
50+ }
51+ }
52+ }
53+
4154exec = ( stmt , state ) => {
4255
4356 if ( typeof stmt === 'number' || typeof stmt === 'string' ) {
@@ -58,16 +71,7 @@ exec = (stmt, state) => {
5871 let firstArgument = stmt [ key ]
5972 return varValue ( firstArgument , state )
6073 } else if ( key === 'if' ) {
61- let condition = stmt [ key ]
62- if ( exec ( condition , state ) ) {
63- let thenStatements = stmt [ 'then' ]
64- return interpret ( thenStatements , state )
65- } else {
66- let elseStatements = stmt [ 'else' ] ;
67- if ( typeof elseStatements !== 'undefined' ) {
68- return interpret ( elseStatements , state )
69- }
70- }
74+ return ifStatement ( stmt , key , state )
7175 } else {
7276 console . error ( 'unknown instruction: ' + key )
7377 }
0 commit comments