Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function main() {
- fso = new ActiveXObject("Scripting.FileSystemObject")
- ts = fso.OpenTextFile(WSH.arguments(0))
- inputData = ts.ReadAll()
- if (inputData.length === 0){
- WSH.echo('Wrong input file!')
- return;
- }
- inputData += ' exit';
- mem = inputData.split(/\s+/);
- ip = 0;
- dif = 0;
- gg = 0;
- wp = 0;
- for ( i = 0; i < mem.length; i++){
- WSH.echo('in yacheika ', i, ' chranitsya ', mem[i]);
- }
- len = mem.length;
- while(mem[ip] !== 'exit'){
- switch (mem[ip]){
- case 'input':
- WSH.echo('Type number');
- mem[mem[ip + 1]] = parseFloat(WScript.StdIn.ReadLine());
- ip += 2;
- break;
- case 'theLastProverka':
- if (mem[mem[ip+1]]<0)
- mem[mem[ip+1]]*=-1;
- ip+=2;
- break;
- case 'output':
- WSH.echo('Result: ' + mem[mem[ip + 1]]);
- ip += 2;
- break;
- case 'ifNegative':
- if (mem[mem[ip+1]] < 0){
- WSH.echo('number is negative');
- ip = 23;
- }
- else
- ip+=2;
- break;
- case 'add':
- mem[mem[ip + 1]] = mem[mem[ip + 3]] + mem[mem[ip + 2]];
- ip += 4;
- break;
- case 'multiply':
- mem[mem[ip + 1]] = mem[mem[ip + 3]] * mem[mem[ip + 2]];
- ip += 4;
- break;
- case 'increase':
- mem[mem[ip + 1]]++;
- ip += 2;
- break;
- case 'var':
- mem[mem[ip + 1]] = Number(mem[ip + 2]);
- ip += 3;
- break;
- case 'dif':
- dif = mem[mem[ip + 1]] - mem[mem[ip + 2]];
- ip += 3;
- break;
- case 'repeat':
- if (dif > 0){
- ip = gg;
- }
- else
- {
- ip += 1;
- }
- break;
- case 'if':
- if (dif === 0){
- ip = 23;
- }
- else
- {
- ip += 1;
- }
- break;
- case 'until':
- gg = ip;
- ip+=1;
- break;
- case 'exit':
- return;
- case 'assign':
- mem[mem[ip + 1]] = mem[mem[ip + 2]];
- ip += 3;
- break;
- case 'mod':
- mem[mem[ip + 1]] = mem[mem[ip + 2]] % mem[mem[ip + 3]];
- ip += 4;
- break;
- case 'eshe':
- ip = gg;
- ip+=1;
- break;
- }
- }
- }
- main();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement