Update scripts to reflect capability of the mscript interpreter right now. No set within loops. Resolves #10

This commit is contained in:
Matt McWilliams 2024-10-14 09:49:37 -04:00
parent c365eff6a7
commit b51b7e8481
10 changed files with 24 additions and 31 deletions

View File

@ -1,5 +1,5 @@
{
"version": "1.8.136",
"version": "1.8.137",
"ext_port": 1111,
"profiles": {
"mcopy": {

View File

@ -510,8 +510,8 @@ class Mscript {
* @param line {string} String containing set statement
*/
set_state(line) {
//console.log(`set_state called: ${line}`);
const update = {};
let dist = 0;
if (line.startsWith('SET CAM2')) {
update.cam2 = parseInt(line.split('SET CAM2')[1]);
}
@ -530,19 +530,14 @@ class Mscript {
else if (line.startsWith('SET PROJ')) {
update.proj = parseInt(line.split('SET PROJ')[1]);
}
//console.log(JSON.stringify(update));
if (this.rec > -1) {
for (let key of Object.keys(update)) {
this.loops[this.rec][key] = update[key];
this.fail(`Line "${line}" is invalid inside of a loop`);
return;
}
}
else {
for (let key of Object.keys(update)) {
this[key] = update[key];
}
}
console.dir(JSON.stringify(this));
}
/**
* Return the last loop
*
@ -669,7 +664,8 @@ class Mscript {
*/
update(cmd, val = 1) {
if (cmd === 'END') {
//I don't understand this loop
//squashes down loops into the previous one until
//the base is reached. val is never not 1, though.
for (let i = 0; i < val; i++) {
if (this.rec === 0) {
this.cam += this.loops[this.rec].cam;

File diff suppressed because one or more lines are too long

2
app/package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "mcopy-app",
"version": "1.8.136",
"version": "1.8.137",
"lockfileVersion": 2,
"requires": true,
"packages": {

View File

@ -1,6 +1,6 @@
{
"name": "mcopy-app",
"version": "1.8.136",
"version": "1.8.137",
"description": "GUI for the mcopy small gauge film optical printer platform",
"main": "main.js",
"scripts": {

View File

@ -1,5 +1,5 @@
{
"version": "1.8.136",
"version": "1.8.137",
"ext_port": 1111,
"profiles": {
"mcopy": {

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "mcopy",
"version": "1.8.136",
"version": "1.8.137",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "mcopy",
"version": "1.8.136",
"version": "1.8.137",
"license": "MIT",
"dependencies": {
"alert": "file:app/lib/alert",

View File

@ -1,6 +1,6 @@
{
"name": "mcopy",
"version": "1.8.136",
"version": "1.8.137",
"description": "Small gauge film optical printer platform",
"main": "build.js",
"directories": {

View File

@ -1,5 +1,5 @@
{
"version": "1.8.136",
"version": "1.8.137",
"ext_port": 1111,
"profiles": {
"mcopy": {

View File

@ -577,8 +577,8 @@ export default class Mscript {
* @param line {string} String containing set statement
*/
private set_state (line : string) {
//console.log(`set_state called: ${line}`);
const update : MscriptUpdatedState = {};
let dist : number = 0;
if (line.startsWith('SET CAM2')) {
update.cam2 = parseInt(line.split('SET CAM2')[1]);
} else if (line.startsWith('SET CAMERA2')) {
@ -592,18 +592,14 @@ export default class Mscript {
} else if (line.startsWith('SET PROJ')) {
update.proj = parseInt(line.split('SET PROJ')[1]);
}
//console.log(JSON.stringify(update));
if (this.rec > -1) {
for (let key of Object.keys(update)) {
(this.loops[this.rec] as any)[key] = (update as any)[key];
this.fail(`Line "${line}" is invalid inside of a loop`);
return;
}
} else {
for (let key of Object.keys(update)) {
(this as any)[key] = (update as any)[key];
}
}
console.dir(JSON.stringify(this));
}
/**
* Return the last loop
*
@ -730,7 +726,8 @@ export default class Mscript {
*/
private update (cmd : string, val : number = 1) {
if (cmd === 'END') {
//I don't understand this loop
//squashes down loops into the previous one until
//the base is reached. val is never not 1, though.
for (let i = 0; i < val; i++) {
if (this.rec === 0) {
this.cam += this.loops[this.rec].cam;