occam-furtle 3.0.366 → 3.0.370
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/context/file/furtle.js +1 -1
- package/lib/context/literal.js +42 -0
- package/lib/element/anonymousProcedure.js +51 -0
- package/lib/element/label.js +17 -1
- package/lib/element/parameters.js +17 -1
- package/lib/element/procedure.js +112 -0
- package/lib/element/returnBlock.js +7 -7
- package/lib/element/returnStatement.js +33 -0
- package/lib/element/statement.js +43 -0
- package/lib/element/type.js +24 -1
- package/lib/example/furtle/bnf.js +11 -5
- package/lib/example/furtle/entries.js +2 -2
- package/lib/node/anoymousProcedure.js +31 -0
- package/lib/node/procedure.js +20 -3
- package/lib/node/returnBlock.js +4 -4
- package/lib/node/returnStatement.js +23 -0
- package/lib/node/statement.js +16 -3
- package/lib/nonTerminalNodeMap.js +10 -10
- package/lib/preamble.js +4 -5
- package/lib/process/instantiate.js +255 -0
- package/lib/process/verify.js +6 -6
- package/lib/ruleNames.js +7 -7
- package/lib/utilities/context.js +15 -1
- package/lib/utilities/element.js +82 -100
- package/lib/utilities/json.js +52 -1
- package/lib/utilities/string.js +1 -8
- package/package.json +5 -5
- package/src/context/file/furtle.js +0 -1
- package/src/context/literal.js +46 -0
- package/src/element/{procedure/anonymous.js → anonymousProcedure.js} +3 -3
- package/src/element/label.js +26 -1
- package/src/element/parameters.js +26 -1
- package/src/element/procedure.js +58 -3
- package/src/element/returnBlock.js +6 -6
- package/src/element/{statement/return.js → returnStatement.js} +1 -1
- package/src/element/{step.js → statement.js} +2 -2
- package/src/element/type.js +41 -1
- package/src/example/furtle/bnf.js +10 -4
- package/src/example/furtle/entries.js +2 -2
- package/src/node/{procedure/anoymous.js → anoymousProcedure.js} +4 -4
- package/src/node/procedure.js +31 -1
- package/src/node/returnBlock.js +5 -5
- package/src/node/returnStatement.js +16 -0
- package/src/node/statement.js +24 -1
- package/src/nonTerminalNodeMap.js +11 -11
- package/src/preamble.js +3 -4
- package/src/process/instantiate.js +194 -0
- package/src/process/verify.js +7 -7
- package/src/ruleNames.js +2 -2
- package/src/utilities/context.js +9 -0
- package/src/utilities/element.js +113 -145
- package/src/utilities/json.js +57 -0
- package/src/utilities/string.js +0 -14
- package/lib/element/declaration/procedure.js +0 -36
- package/lib/element/procedure/anonymous.js +0 -51
- package/lib/element/statement/return.js +0 -33
- package/lib/element/step.js +0 -43
- package/lib/node/declaration/procedure.js +0 -40
- package/lib/node/declaration.js +0 -18
- package/lib/node/procedure/anoymous.js +0 -36
- package/lib/node/statement/return.js +0 -28
- package/lib/node/step.js +0 -31
- package/src/element/declaration/procedure.js +0 -38
- package/src/node/declaration/procedure.js +0 -37
- package/src/node/declaration.js +0 -7
- package/src/node/statement/return.js +0 -16
- package/src/node/step.js +0 -30
package/src/utilities/element.js
CHANGED
|
@@ -10,7 +10,6 @@ import { ternaryStringFromTerm,
|
|
|
10
10
|
termStringFromProperties,
|
|
11
11
|
valueStringFromProperties,
|
|
12
12
|
expressionStringFromProperties,
|
|
13
|
-
procedureDeclarationStringFromProcedure,
|
|
14
13
|
returnBlockStringFromReturnStatementNode,
|
|
15
14
|
variableAssignmentStringFromTypeAndVariable,
|
|
16
15
|
someStringFromVariableAndAnonymousProcedure,
|
|
@@ -20,22 +19,6 @@ import { ternaryStringFromTerm,
|
|
|
20
19
|
variableAssignmentStringFromTypeAndVariableAssignmentsArray,
|
|
21
20
|
reduceStringFromVariableInitialExpressionAndAnonymousProcedure } from "../utilities/string";
|
|
22
21
|
|
|
23
|
-
export function stepFromStepNode(stepNode, context) {
|
|
24
|
-
const { Step } = elements,
|
|
25
|
-
node = stepNode, ///
|
|
26
|
-
string = context.nodeAsString(node),
|
|
27
|
-
breakPoint = null,
|
|
28
|
-
arrayAssignment = arrayAssignmentFromStepNode(stepNode, context),
|
|
29
|
-
objectAssigment = objectAssignmentFromStepNode(stepNode, context),
|
|
30
|
-
variableAssigments = variableAssignmentsFromStepNode(stepNode, context);
|
|
31
|
-
|
|
32
|
-
context = null;
|
|
33
|
-
|
|
34
|
-
const step = new Step(context, string, node, breakPoint, arrayAssignment, objectAssigment, variableAssigments);
|
|
35
|
-
|
|
36
|
-
return step;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
22
|
export function someFromSomeNode(someNode, context) {
|
|
40
23
|
const { Some } = elements,
|
|
41
24
|
node = someNode, ///
|
|
@@ -115,22 +98,6 @@ export function valueFromValueNode(valueNode, context) {
|
|
|
115
98
|
return value;
|
|
116
99
|
}
|
|
117
100
|
|
|
118
|
-
export function termsFromTermsNode(termsNode, context) {
|
|
119
|
-
const { Terms } = elements,
|
|
120
|
-
node = termsNode, ///
|
|
121
|
-
string = context.nodeAsString(node),
|
|
122
|
-
termNodes = termsNode.getTermNodes(),
|
|
123
|
-
termsArray = termsArrayFromTermNodes(termNodes, context),
|
|
124
|
-
array = termsArray, ///
|
|
125
|
-
breakPoint = null;
|
|
126
|
-
|
|
127
|
-
context = null;
|
|
128
|
-
|
|
129
|
-
const terms = new Terms(context, string, node, breakPoint, array);
|
|
130
|
-
|
|
131
|
-
return terms;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
101
|
export function errorFromErrorNode(errorNode, context) {
|
|
135
102
|
const { Error } = elements,
|
|
136
103
|
node = errorNode, ///
|
|
@@ -285,6 +252,37 @@ export function lengthOfFromLengthOfNode(lengthOfNode, context) {
|
|
|
285
252
|
return lengthOf;
|
|
286
253
|
}
|
|
287
254
|
|
|
255
|
+
export function statementFromStatementNode(statementNode, context) {
|
|
256
|
+
const { Statement } = elements,
|
|
257
|
+
node = statementNode, ///
|
|
258
|
+
string = context.nodeAsString(node),
|
|
259
|
+
breakPoint = null,
|
|
260
|
+
arrayAssignment = arrayAssignmentFromStatementNode(statementNode, context),
|
|
261
|
+
objectAssigment = objectAssignmentFromStatementNode(statementNode, context),
|
|
262
|
+
variableAssigments = variableAssignmentsFromStatementNode(statementNode, context);
|
|
263
|
+
|
|
264
|
+
context = null;
|
|
265
|
+
|
|
266
|
+
const statement = new Statement(context, string, node, breakPoint, arrayAssignment, objectAssigment, variableAssigments);
|
|
267
|
+
|
|
268
|
+
return statement;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
export function procedureFromProcedureNode(procedureNode, context) {
|
|
272
|
+
const { Procedure } = elements,
|
|
273
|
+
node = procedureNode, ///
|
|
274
|
+
type = typeFromProcedureNode(procedureNode, context),
|
|
275
|
+
label = labelFromProcedureNode(procedureNode, context),
|
|
276
|
+
parameters = parametersFromProcedureNode(procedureNode, context),
|
|
277
|
+
returnBlock = returnBlockFromProcedureNode(procedureNode, context),
|
|
278
|
+
procedureString = procedureStringFromTypeLabelParametersAndReturnBlock(type, label, parameters, returnBlock),
|
|
279
|
+
string = procedureString, ///
|
|
280
|
+
breakPoint = null,
|
|
281
|
+
procedure = new Procedure(context, string, node, breakPoint, type, label, parameters, returnBlock);
|
|
282
|
+
|
|
283
|
+
return procedure;
|
|
284
|
+
}
|
|
285
|
+
|
|
288
286
|
export function referenceFromReferenceNode(referenceNode, context) {
|
|
289
287
|
const { Reference } = elements,
|
|
290
288
|
node = referenceNode, ///
|
|
@@ -445,7 +443,7 @@ export function tryIntegerFromTryIntegerNode(tryIntegerNode, context) {
|
|
|
445
443
|
export function returnBlockFromReturnBlockNode(returnBlockNode, context) {
|
|
446
444
|
const { ReturnBlock } = elements,
|
|
447
445
|
node = returnBlockNode, ///
|
|
448
|
-
|
|
446
|
+
statements = statementsFromReturnBlockNode(returnBlockNode, context),
|
|
449
447
|
nonsensical = nonsensicalFromReturnBlockNode(returnBlockNode, context),
|
|
450
448
|
returnStatement = returnStatementFromReturnBlockNode(returnBlockNode, context),
|
|
451
449
|
returnBlockString = returnBlockStringFromReturnStatementNode(returnStatement),
|
|
@@ -454,7 +452,7 @@ export function returnBlockFromReturnBlockNode(returnBlockNode, context) {
|
|
|
454
452
|
|
|
455
453
|
context = null;
|
|
456
454
|
|
|
457
|
-
const returnBlock = new ReturnBlock(context, string, node, breakPoint,
|
|
455
|
+
const returnBlock = new ReturnBlock(context, string, node, breakPoint, statements, nonsensical, returnStatement);
|
|
458
456
|
|
|
459
457
|
return returnBlock;
|
|
460
458
|
}
|
|
@@ -564,21 +562,6 @@ export function namedBindingsFromObjectAssignmentNode(objectAssignmentNode, cont
|
|
|
564
562
|
return namedBindings;
|
|
565
563
|
}
|
|
566
564
|
|
|
567
|
-
export function procedureFromProcedureDeclarationNode(procedureDeclarationNode, context) {
|
|
568
|
-
const { Procedure } = elements,
|
|
569
|
-
node = procedureDeclarationNode, ///
|
|
570
|
-
type = typeFromProcedureDeclarationNode(procedureDeclarationNode, context),
|
|
571
|
-
label = labelFromProcedureDeclarationNode(procedureDeclarationNode, context),
|
|
572
|
-
parameters = parametersFromProcedureDeclarationNode(procedureDeclarationNode, context),
|
|
573
|
-
returnBlock = returnBlockFromProcedureDeclarationNode(procedureDeclarationNode, context),
|
|
574
|
-
procedureString = procedureStringFromTypeLabelParametersAndReturnBlock(type, label, parameters, returnBlock),
|
|
575
|
-
string = procedureString, ///
|
|
576
|
-
breakPoint = null,
|
|
577
|
-
procedure = new Procedure(context, string, node, breakPoint, type, label, parameters, returnBlock);
|
|
578
|
-
|
|
579
|
-
return procedure;
|
|
580
|
-
}
|
|
581
|
-
|
|
582
565
|
export function arrayAssignmentFromArrayAssignmentNode(arrayAssignmentNode, context) {
|
|
583
566
|
const { ArrayAssignment } = elements,
|
|
584
567
|
node = arrayAssignmentNode, ///
|
|
@@ -657,21 +640,6 @@ export function variableAssignmentsFromVariableAssignmentsNode(variableAssignmen
|
|
|
657
640
|
return variableAssignments;
|
|
658
641
|
}
|
|
659
642
|
|
|
660
|
-
export function procedureDeclarationFromProcedureDeclarationNode(procedureDeclarationNode, context) {
|
|
661
|
-
const { ProcedureDeclaration } = elements,
|
|
662
|
-
node = procedureDeclarationNode, ///
|
|
663
|
-
procedure = procedureFromProcedureDeclarationNode(procedureDeclarationNode, context),
|
|
664
|
-
procedureDeclarationString = procedureDeclarationStringFromProcedure(procedure),
|
|
665
|
-
string = procedureDeclarationString, ///
|
|
666
|
-
breakPoint = null;
|
|
667
|
-
|
|
668
|
-
context = null;
|
|
669
|
-
|
|
670
|
-
const procedureDeclaration = new ProcedureDeclaration(context, string, node, breakPoint, procedure);
|
|
671
|
-
|
|
672
|
-
return procedureDeclaration;
|
|
673
|
-
}
|
|
674
|
-
|
|
675
643
|
export function variableAssignmentFromTypeAndVariableAssignmentNode(type, variableAssignmentNode, context) {
|
|
676
644
|
const { VariableAssignment } = elements,
|
|
677
645
|
node = variableAssignmentNode, ///
|
|
@@ -685,19 +653,6 @@ export function variableAssignmentFromTypeAndVariableAssignmentNode(type, variab
|
|
|
685
653
|
return assignment;
|
|
686
654
|
}
|
|
687
655
|
|
|
688
|
-
export function variableFromTypeAndVariableNode(type, variableNode, context) {
|
|
689
|
-
const { Variable } = elements,
|
|
690
|
-
node = variableNode, ///
|
|
691
|
-
name = nameFromVariableNode(variableNode),
|
|
692
|
-
value = valueFromTypeAndVariableNode(type, variableNode, context),
|
|
693
|
-
variableString = variableStringFromName(name),
|
|
694
|
-
string = variableString, ///
|
|
695
|
-
breakPoint = null,
|
|
696
|
-
variable = new Variable(context, string, node, breakPoint, type, name, value);
|
|
697
|
-
|
|
698
|
-
return variable;
|
|
699
|
-
}
|
|
700
|
-
|
|
701
656
|
export function nameFromTypeNode(typeNode, context) {
|
|
702
657
|
const name = typeNode.getName();
|
|
703
658
|
|
|
@@ -773,6 +728,13 @@ export function typeFromVariableNode(variableNode, context) {
|
|
|
773
728
|
return type;
|
|
774
729
|
}
|
|
775
730
|
|
|
731
|
+
export function typeFromProcedureNode(procedureNode, context) {
|
|
732
|
+
const typeNode = procedureNode.getTypeNode(),
|
|
733
|
+
type = typeFromTypeNode(typeNode, context);
|
|
734
|
+
|
|
735
|
+
return type;
|
|
736
|
+
}
|
|
737
|
+
|
|
776
738
|
export function primitiveFromTermNode(termNode, context) {
|
|
777
739
|
let primitive = null;
|
|
778
740
|
|
|
@@ -870,6 +832,13 @@ export function valueFromPrimitiveNode(primitiveNode, context) {
|
|
|
870
832
|
return value;
|
|
871
833
|
}
|
|
872
834
|
|
|
835
|
+
export function labelFromProcedureNode(procedureNode, context) {
|
|
836
|
+
const labelNode = procedureNode.getLabelNode(),
|
|
837
|
+
label = labelFromLabelNode(labelNode, context);
|
|
838
|
+
|
|
839
|
+
return label;
|
|
840
|
+
}
|
|
841
|
+
|
|
873
842
|
export function termFromExpressionNode(expressionNode, context) {
|
|
874
843
|
let term = null;
|
|
875
844
|
|
|
@@ -990,17 +959,6 @@ export function reduceFromExpressionNode(expressionNode, context) {
|
|
|
990
959
|
return reduce;
|
|
991
960
|
}
|
|
992
961
|
|
|
993
|
-
export function stepsFromReturnBlockNode(returnBlockNode, context) {
|
|
994
|
-
const stepNodes = returnBlockNode.getStepNodes(),
|
|
995
|
-
steps = stepNodes.map((stepNode) => {
|
|
996
|
-
const step = stepFromStepNode(stepNode, context);
|
|
997
|
-
|
|
998
|
-
return step;
|
|
999
|
-
});
|
|
1000
|
-
|
|
1001
|
-
return steps;
|
|
1002
|
-
}
|
|
1003
|
-
|
|
1004
962
|
export function typeFromNamedBindingNode(namedBindingNode, context) {
|
|
1005
963
|
const typeNode = namedBindingNode.getTypeNode(),
|
|
1006
964
|
type = typeFromTypeNode(typeNode, context);
|
|
@@ -1116,18 +1074,6 @@ export function lengthOfFromExpressionNode(expressionNode, context) {
|
|
|
1116
1074
|
return lengthOf;
|
|
1117
1075
|
}
|
|
1118
1076
|
|
|
1119
|
-
export function arrayAssignmentFromStepNode(stepNode, context) {
|
|
1120
|
-
let arrayAssignment = null;
|
|
1121
|
-
|
|
1122
|
-
const arrayAssignmentNode = stepNode.getArrayAssignmentNode();
|
|
1123
|
-
|
|
1124
|
-
if (arrayAssignmentNode !== null) {
|
|
1125
|
-
arrayAssignment = arrayAssignmentFromArrayAssignmentNode(arrayAssignmentNode, context);
|
|
1126
|
-
}
|
|
1127
|
-
|
|
1128
|
-
return arrayAssignment;
|
|
1129
|
-
}
|
|
1130
|
-
|
|
1131
1077
|
export function ifExpressionFromTernaryNode(ternaryNode, context) {
|
|
1132
1078
|
const ifExpressionNode = ternaryNode.getIfExpressionNode(),
|
|
1133
1079
|
ifExpression = expressionFromExpressionNode(ifExpressionNode, context);
|
|
@@ -1135,6 +1081,13 @@ export function ifExpressionFromTernaryNode(ternaryNode, context) {
|
|
|
1135
1081
|
return ifExpression;
|
|
1136
1082
|
}
|
|
1137
1083
|
|
|
1084
|
+
export function parametersFromProcedureNode(procedureNode, context) {
|
|
1085
|
+
const parametersNode = procedureNode.getParametersNode(),
|
|
1086
|
+
parameters = parametersFromParametersNode(parametersNode, context);
|
|
1087
|
+
|
|
1088
|
+
return parameters;
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1138
1091
|
export function toIntegerFromExpressionNode(expressionNode, context) {
|
|
1139
1092
|
let toInteger = null;
|
|
1140
1093
|
|
|
@@ -1173,6 +1126,13 @@ export function valuesFromProcedureCallNode(procedureCallNode, context) {
|
|
|
1173
1126
|
return values;
|
|
1174
1127
|
}
|
|
1175
1128
|
|
|
1129
|
+
export function returnBlockFromProcedureNode(procedureNode, context) {
|
|
1130
|
+
const returnBlockNode = procedureNode.getReturnBlockNode(),
|
|
1131
|
+
returnBlock = returnBlockFromReturnBlockNode(returnBlockNode, context);
|
|
1132
|
+
|
|
1133
|
+
return returnBlock;
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1176
1136
|
export function valueFromTypeAndVariableNode(type, variableNode, context) {
|
|
1177
1137
|
const value = null;
|
|
1178
1138
|
|
|
@@ -1186,18 +1146,6 @@ export function valueFromReturnStatementNode(returnStatementNode, context) {
|
|
|
1186
1146
|
return value;
|
|
1187
1147
|
}
|
|
1188
1148
|
|
|
1189
|
-
export function objectAssignmentFromStepNode(stepNode, context) {
|
|
1190
|
-
let objectAssignment = null;
|
|
1191
|
-
|
|
1192
|
-
const objectAssignmentNode = stepNode.getObjectAssignmentNode();
|
|
1193
|
-
|
|
1194
|
-
if (objectAssignmentNode !== null) {
|
|
1195
|
-
objectAssignment = objectAssignmentFromObjectAssignmentNode(objectAssignmentNode, context);
|
|
1196
|
-
}
|
|
1197
|
-
|
|
1198
|
-
return objectAssignment;
|
|
1199
|
-
}
|
|
1200
|
-
|
|
1201
1149
|
export function nodesQueryFromExpressionNode(expressionNode, context) {
|
|
1202
1150
|
let nodesQuery = null;
|
|
1203
1151
|
|
|
@@ -1248,6 +1196,17 @@ export function returnBlockFromExpressionNode(expressionNode, context) {
|
|
|
1248
1196
|
return returnBlock;
|
|
1249
1197
|
}
|
|
1250
1198
|
|
|
1199
|
+
export function statementsFromReturnBlockNode(returnBlockNode, context) {
|
|
1200
|
+
const statementNodes = returnBlockNode.getStatementNodes(),
|
|
1201
|
+
statements = statementNodes.map((statementNode) => {
|
|
1202
|
+
const statement = statementFromStatementNode(statementNode, context);
|
|
1203
|
+
|
|
1204
|
+
return statement;
|
|
1205
|
+
});
|
|
1206
|
+
|
|
1207
|
+
return statements;
|
|
1208
|
+
}
|
|
1209
|
+
|
|
1251
1210
|
export function negatedFromComparisonTermNode(comparisonTermNode, context) {
|
|
1252
1211
|
const negated = comparisonTermNode.isNegated();
|
|
1253
1212
|
|
|
@@ -1294,16 +1253,17 @@ export function typeFromAnonymousProcedureNode(anonymousProcedureNode, context)
|
|
|
1294
1253
|
return type;
|
|
1295
1254
|
}
|
|
1296
1255
|
|
|
1297
|
-
export function
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1256
|
+
export function variableFromTypeAndVariableNode(type, variableNode, context) {
|
|
1257
|
+
const { Variable } = elements,
|
|
1258
|
+
node = variableNode, ///
|
|
1259
|
+
name = nameFromVariableNode(variableNode),
|
|
1260
|
+
value = valueFromTypeAndVariableNode(type, variableNode, context),
|
|
1261
|
+
variableString = variableStringFromName(name),
|
|
1262
|
+
string = variableString, ///
|
|
1263
|
+
breakPoint = null,
|
|
1264
|
+
variable = new Variable(context, string, node, breakPoint, type, name, value);
|
|
1305
1265
|
|
|
1306
|
-
return
|
|
1266
|
+
return variable;
|
|
1307
1267
|
}
|
|
1308
1268
|
|
|
1309
1269
|
export function anonymousProcedureFromEveryNode(everyNode, context) {
|
|
@@ -1360,6 +1320,18 @@ export function anonymousProcedureFromReduceNode(reduceNode, context) {
|
|
|
1360
1320
|
return anonymousProcedure;
|
|
1361
1321
|
}
|
|
1362
1322
|
|
|
1323
|
+
export function arrayAssignmentFromStatementNode(statementNode, context) {
|
|
1324
|
+
let arrayAssignment = null;
|
|
1325
|
+
|
|
1326
|
+
const arrayAssignmentNode = statementNode.getArrayAssignmentNode();
|
|
1327
|
+
|
|
1328
|
+
if (arrayAssignmentNode !== null) {
|
|
1329
|
+
arrayAssignment = arrayAssignmentFromArrayAssignmentNode(arrayAssignmentNode, context);
|
|
1330
|
+
}
|
|
1331
|
+
|
|
1332
|
+
return arrayAssignment;
|
|
1333
|
+
}
|
|
1334
|
+
|
|
1363
1335
|
export function variableFromObjectAssignmentNode(objectAssignmentNode, context) {
|
|
1364
1336
|
const variableNode = objectAssignmentNode.getVariableNode(),
|
|
1365
1337
|
variable = variableFromVariableNode(variableNode, context);
|
|
@@ -1367,18 +1339,16 @@ export function variableFromObjectAssignmentNode(objectAssignmentNode, context)
|
|
|
1367
1339
|
return variable;
|
|
1368
1340
|
}
|
|
1369
1341
|
|
|
1370
|
-
export function
|
|
1371
|
-
|
|
1372
|
-
type = typeFromTypeNode(typeNode, context);
|
|
1342
|
+
export function objectAssignmentFromStatementNode(statementNode, context) {
|
|
1343
|
+
let objectAssignment = null;
|
|
1373
1344
|
|
|
1374
|
-
|
|
1375
|
-
}
|
|
1345
|
+
const objectAssignmentNode = statementNode.getObjectAssignmentNode();
|
|
1376
1346
|
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1347
|
+
if (objectAssignmentNode !== null) {
|
|
1348
|
+
objectAssignment = objectAssignmentFromObjectAssignmentNode(objectAssignmentNode, context);
|
|
1349
|
+
}
|
|
1380
1350
|
|
|
1381
|
-
return
|
|
1351
|
+
return objectAssignment;
|
|
1382
1352
|
}
|
|
1383
1353
|
|
|
1384
1354
|
export function returnStatementFromReturnBlockNode(returnBlockNode, context) {
|
|
@@ -1388,6 +1358,18 @@ export function returnStatementFromReturnBlockNode(returnBlockNode, context) {
|
|
|
1388
1358
|
return returnStatement;
|
|
1389
1359
|
}
|
|
1390
1360
|
|
|
1361
|
+
export function variableAssignmentsFromStatementNode(statementNode, context) {
|
|
1362
|
+
let variableAssignments = null;
|
|
1363
|
+
|
|
1364
|
+
const variableAssignmentsNode = statementNode.getVariableAssignmentsNode();
|
|
1365
|
+
|
|
1366
|
+
if (variableAssignmentsNode !== null) {
|
|
1367
|
+
variableAssignments = variableAssignmentsFromVariableAssignmentsNode(variableAssignmentsNode, context);
|
|
1368
|
+
}
|
|
1369
|
+
|
|
1370
|
+
return variableAssignments;
|
|
1371
|
+
}
|
|
1372
|
+
|
|
1391
1373
|
export function expressionFromVariableAssignmentNode(variableAssigmentNode, context) {
|
|
1392
1374
|
const expressionNode = variableAssigmentNode.getExpressionNode(),
|
|
1393
1375
|
expression = expressionFromExpressionNode(expressionNode, context);
|
|
@@ -1409,20 +1391,6 @@ export function returnBlockFromAnonymousProcedureNode(anonymousProcedureNode, co
|
|
|
1409
1391
|
return returnBlock;
|
|
1410
1392
|
}
|
|
1411
1393
|
|
|
1412
|
-
export function parametersFromProcedureDeclarationNode(procedureDeclarationNode, context) {
|
|
1413
|
-
const parametersNode = procedureDeclarationNode.getParametersNode(),
|
|
1414
|
-
parameters = parametersFromParametersNode(parametersNode, context);
|
|
1415
|
-
|
|
1416
|
-
return parameters;
|
|
1417
|
-
}
|
|
1418
|
-
|
|
1419
|
-
export function returnBlockFromProcedureDeclarationNode(procedureDeclarationNode, context) {
|
|
1420
|
-
const returnBlockNode = procedureDeclarationNode.getReturnBlockNode(),
|
|
1421
|
-
returnBlock = returnBlockFromReturnBlockNode(returnBlockNode, context);
|
|
1422
|
-
|
|
1423
|
-
return returnBlock;
|
|
1424
|
-
}
|
|
1425
|
-
|
|
1426
1394
|
export function variableFromTypeAndVariableAssignmentNode(type, variableAssignmentNode, context) {
|
|
1427
1395
|
const variableNode = variableAssignmentNode.getVariableNode(),
|
|
1428
1396
|
variable = variableFromTypeAndVariableNode(type, variableNode, context);
|
package/src/utilities/json.js
CHANGED
|
@@ -2,6 +2,63 @@
|
|
|
2
2
|
|
|
3
3
|
import elements from "../elements";
|
|
4
4
|
|
|
5
|
+
export function typeToTypeJSON(type) {
|
|
6
|
+
const typeJSON = type.toJSON();
|
|
7
|
+
|
|
8
|
+
return typeJSON;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function labelToLabelJSON(label) {
|
|
12
|
+
const labelJSON = label.toJSON();
|
|
13
|
+
|
|
14
|
+
return labelJSON;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function parametersToParametersJSON(parameters) {
|
|
18
|
+
const parameterJSON = parameters.toJSON();
|
|
19
|
+
|
|
20
|
+
return parameterJSON;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function typeFromJSON(json, context) {
|
|
24
|
+
let { type } = json;
|
|
25
|
+
|
|
26
|
+
const { Type } = elements,
|
|
27
|
+
typeJSON = type; ///
|
|
28
|
+
|
|
29
|
+
json = typeJSON; ///
|
|
30
|
+
|
|
31
|
+
type = Type.fromJSON(json, context);
|
|
32
|
+
|
|
33
|
+
return type;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export function labelFromJSON(json, context) {
|
|
37
|
+
let { label } = json;
|
|
38
|
+
|
|
39
|
+
const { Label } = elements,
|
|
40
|
+
labelJSON = label; ///
|
|
41
|
+
|
|
42
|
+
json = labelJSON; ///
|
|
43
|
+
|
|
44
|
+
label = Label.fromJSON(json, context);
|
|
45
|
+
|
|
46
|
+
return label;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export function parametersFromJSON(json, context) {
|
|
50
|
+
let { parameters } = json;
|
|
51
|
+
|
|
52
|
+
const { Parameters } = elements,
|
|
53
|
+
parametersJSON = parameters; ///
|
|
54
|
+
|
|
55
|
+
json = parametersJSON; ///
|
|
56
|
+
|
|
57
|
+
parameters = Parameters.fromJSON(json, context);
|
|
58
|
+
|
|
59
|
+
return parameters;
|
|
60
|
+
}
|
|
61
|
+
|
|
5
62
|
export function proceduresFromJSON(json, context) {
|
|
6
63
|
let { procedures } = json;
|
|
7
64
|
|
package/src/utilities/string.js
CHANGED
|
@@ -129,20 +129,6 @@ export function primtiveStringFromNominalValues(nominalValues) {
|
|
|
129
129
|
return primtiveString;
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
-
export function procedureDeclarationStringFromProcedure(procedure) {
|
|
133
|
-
const type = procedure.getType(),
|
|
134
|
-
label = procedure.getLabel(),
|
|
135
|
-
parameters = procedure.getParameters(),
|
|
136
|
-
returnStatement = procedure.getReturnStatement(),
|
|
137
|
-
typeString = type.getString(),
|
|
138
|
-
labelString = label.getString(),
|
|
139
|
-
parametersString = parameters.getString(),
|
|
140
|
-
returnStatementString = returnStatement.getString(),
|
|
141
|
-
procedureDelcarationString = `${typeString} ${labelString }(${parametersString}) { ... ${returnStatementString} }`;
|
|
142
|
-
|
|
143
|
-
return procedureDelcarationString;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
132
|
export function returnBlockStringFromReturnStatementNode(returnStatement) {
|
|
147
133
|
const returnStatementString = returnStatement.getString(),
|
|
148
134
|
returnBlockString = `{ ... ${returnStatementString} }`;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _occamlanguages = require("occam-languages");
|
|
12
|
-
const _elements = require("../../elements");
|
|
13
|
-
const _default = (0, _elements.define)(class ProcedureDeclaration extends _occamlanguages.Element {
|
|
14
|
-
constructor(context, string, node, breakPoint, procedure){
|
|
15
|
-
super(context, string, node, breakPoint);
|
|
16
|
-
this.string = string;
|
|
17
|
-
this.procedure = procedure;
|
|
18
|
-
}
|
|
19
|
-
getProcedure() {
|
|
20
|
-
return this.procedure;
|
|
21
|
-
}
|
|
22
|
-
verify(context) {
|
|
23
|
-
const verifies = true;
|
|
24
|
-
const procedureDeclarationString = this.getString();
|
|
25
|
-
context.trace(`Verifying the '${procedureDeclarationString}' function declaration...`);
|
|
26
|
-
const procedure = this.getProcedure();
|
|
27
|
-
context.addProcedure(procedure);
|
|
28
|
-
if (verifies) {
|
|
29
|
-
context.debug(`...verified the '${procedureDeclarationString}' function declaration.`);
|
|
30
|
-
}
|
|
31
|
-
return verifies;
|
|
32
|
-
}
|
|
33
|
-
static name = "ProcedureDeclaration";
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2RlY2xhcmF0aW9uL3Byb2NlZHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBQcm9jZWR1cmVEZWNsYXJhdGlvbiBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHByb2NlZHVyZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnByb2NlZHVyZSA9IHByb2NlZHVyZTtcbiAgfVxuXG4gIGdldFByb2NlZHVyZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9jZWR1cmU7XG4gIH1cblxuICB2ZXJpZnkoY29udGV4dCkge1xuICAgIGNvbnN0IHZlcmlmaWVzID0gdHJ1ZTtcblxuICAgIGNvbnN0IHByb2NlZHVyZURlY2xhcmF0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7cHJvY2VkdXJlRGVjbGFyYXRpb25TdHJpbmd9JyBmdW5jdGlvbiBkZWNsYXJhdGlvbi4uLmApXG5cbiAgICBjb25zdCBwcm9jZWR1cmUgPSB0aGlzLmdldFByb2NlZHVyZSgpO1xuXG4gICAgY29udGV4dC5hZGRQcm9jZWR1cmUocHJvY2VkdXJlKTtcblxuICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Byb2NlZHVyZURlY2xhcmF0aW9uU3RyaW5nfScgZnVuY3Rpb24gZGVjbGFyYXRpb24uYClcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZXM7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUHJvY2VkdXJlRGVjbGFyYXRpb25cIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlByb2NlZHVyZURlY2xhcmF0aW9uIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInByb2NlZHVyZSIsImdldFByb2NlZHVyZSIsInZlcmlmeSIsInZlcmlmaWVzIiwicHJvY2VkdXJlRGVjbGFyYXRpb25TdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsImFkZFByb2NlZHVyZSIsImRlYnVnIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFBOzs7Z0NBSndCOzBCQUVEO01BRXZCLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsNkJBQTZCQyx1QkFBTztJQUM5RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFNBQVMsQ0FBRTtRQUN4RCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0YsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0csU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNELFNBQVM7SUFDdkI7SUFFQUUsT0FBT04sT0FBTyxFQUFFO1FBQ2QsTUFBTU8sV0FBVztRQUVqQixNQUFNQyw2QkFBNkIsSUFBSSxDQUFDQyxTQUFTO1FBRWpEVCxRQUFRVSxLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUVGLDJCQUEyQix5QkFBeUIsQ0FBQztRQUVyRixNQUFNSixZQUFZLElBQUksQ0FBQ0MsWUFBWTtRQUVuQ0wsUUFBUVcsWUFBWSxDQUFDUDtRQUVyQixJQUFJRyxVQUFVO1lBQ1pQLFFBQVFZLEtBQUssQ0FBQyxDQUFDLGlCQUFpQixFQUFFSiwyQkFBMkIsdUJBQXVCLENBQUM7UUFDdkY7UUFFQSxPQUFPRDtJQUNUO0lBRUEsT0FBT00sT0FBTyx1QkFBdUI7QUFDdkMifQ==
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _occamlanguages = require("occam-languages");
|
|
12
|
-
const _exception = /*#__PURE__*/ _interop_require_default(require("../../exception"));
|
|
13
|
-
const _elements = require("../../elements");
|
|
14
|
-
const _parameters = require("../../utilities/parameters");
|
|
15
|
-
function _interop_require_default(obj) {
|
|
16
|
-
return obj && obj.__esModule ? obj : {
|
|
17
|
-
default: obj
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
const _default = (0, _elements.define)(class AnonymousProcedure extends _occamlanguages.Element {
|
|
21
|
-
constructor(context, string, node, breakPoint, type, parameters, returnBlock){
|
|
22
|
-
super(context, string, node, breakPoint);
|
|
23
|
-
this.type = type;
|
|
24
|
-
this.parameters = parameters;
|
|
25
|
-
this.returnBlock = returnBlock;
|
|
26
|
-
}
|
|
27
|
-
getType() {
|
|
28
|
-
return this.type;
|
|
29
|
-
}
|
|
30
|
-
getParameters() {
|
|
31
|
-
return this.parameters;
|
|
32
|
-
}
|
|
33
|
-
getReturnBlock() {
|
|
34
|
-
return this.returnBlock;
|
|
35
|
-
}
|
|
36
|
-
async call(values, context) {
|
|
37
|
-
const anonymousProcedureString = this.getString(); ///
|
|
38
|
-
context.trace(`Calling the '${anonymousProcedureString}' anonymous procedure...`);
|
|
39
|
-
this.parameters.compareValues(values, context);
|
|
40
|
-
const variables = (0, _parameters.variablesFromValuesAndParameters)(values, this.parameters, context), value = await this.returnBlock.evaluate(variables, context), valueType = value.getType(), typeEqualToValueType = this.type.isEqualTo(valueType);
|
|
41
|
-
if (!typeEqualToValueType) {
|
|
42
|
-
const valueString = value.getString(), typeString = this.type.getString(), message = `The '${valueString}' value's '${valueType}' type is not equal to the '${anonymousProcedureString}' anonymous procedure's '${typeString}' type.`, exception = _exception.default.fromMessage(message);
|
|
43
|
-
throw exception;
|
|
44
|
-
}
|
|
45
|
-
context.debug(`...called the '${anonymousProcedureString}' anonymous procedure.`);
|
|
46
|
-
return value;
|
|
47
|
-
}
|
|
48
|
-
static name = "AnonymousProcedure";
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Byb2NlZHVyZS9hbm9ueW1vdXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uLy4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IHZhcmlhYmxlc0Zyb21WYWx1ZXNBbmRQYXJhbWV0ZXJzIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9wYXJhbWV0ZXJzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBBbm9ueW1vdXNQcm9jZWR1cmUgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCBwYXJhbWV0ZXJzLCByZXR1cm5CbG9jaykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHBhcmFtZXRlcnM7XG4gICAgdGhpcy5yZXR1cm5CbG9jayA9IHJldHVybkJsb2NrO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgZ2V0UGFyYW1ldGVycygpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzO1xuICB9XG5cbiAgZ2V0UmV0dXJuQmxvY2soKSB7XG4gICAgcmV0dXJuIHRoaXMucmV0dXJuQmxvY2s7XG4gIH1cblxuICBhc3luYyBjYWxsKHZhbHVlcywgY29udGV4dCkge1xuICAgIGNvbnN0IGFub255bW91c1Byb2NlZHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ2FsbGluZyB0aGUgJyR7YW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nfScgYW5vbnltb3VzIHByb2NlZHVyZS4uLmApO1xuXG4gICAgdGhpcy5wYXJhbWV0ZXJzLmNvbXBhcmVWYWx1ZXModmFsdWVzLCBjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHZhcmlhYmxlc0Zyb21WYWx1ZXNBbmRQYXJhbWV0ZXJzKHZhbHVlcywgdGhpcy5wYXJhbWV0ZXJzLCBjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZSA9IGF3YWl0IHRoaXMucmV0dXJuQmxvY2suZXZhbHVhdGUodmFyaWFibGVzLCBjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdHlwZUVxdWFsVG9WYWx1ZVR5cGUgPSB0aGlzLnR5cGUuaXNFcXVhbFRvKHZhbHVlVHlwZSk7XG5cbiAgICBpZiAoIXR5cGVFcXVhbFRvVmFsdWVUeXBlKSB7XG4gICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgdHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIGlzIG5vdCBlcXVhbCB0byB0aGUgJyR7YW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nfScgYW5vbnltb3VzIHByb2NlZHVyZSdzICcke3R5cGVTdHJpbmd9JyB0eXBlLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5jYWxsZWQgdGhlICcke2Fub255bW91c1Byb2NlZHVyZVN0cmluZ30nIGFub255bW91cyBwcm9jZWR1cmUuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQW5vbnltb3VzUHJvY2VkdXJlXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJBbm9ueW1vdXNQcm9jZWR1cmUiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidHlwZSIsInBhcmFtZXRlcnMiLCJyZXR1cm5CbG9jayIsImdldFR5cGUiLCJnZXRQYXJhbWV0ZXJzIiwiZ2V0UmV0dXJuQmxvY2siLCJjYWxsIiwidmFsdWVzIiwiYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJjb21wYXJlVmFsdWVzIiwidmFyaWFibGVzIiwidmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnMiLCJ2YWx1ZSIsImV2YWx1YXRlIiwidmFsdWVUeXBlIiwidHlwZUVxdWFsVG9WYWx1ZVR5cGUiLCJpc0VxdWFsVG8iLCJ2YWx1ZVN0cmluZyIsInR5cGVTdHJpbmciLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNBOzs7ZUFBQTs7O2dDQVB3QjtrRUFFRjswQkFFQzs0QkFDMEI7Ozs7OztNQUVqRCxXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLDJCQUEyQkMsdUJBQU87SUFDNUQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsV0FBVyxDQUFFO1FBQzVFLEtBQUssQ0FBQ04sU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxVQUFVLEdBQUdBO1FBQ2xCLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTtJQUNyQjtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNILElBQUk7SUFDbEI7SUFFQUksZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNILFVBQVU7SUFDeEI7SUFFQUksaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUNILFdBQVc7SUFDekI7SUFFQSxNQUFNSSxLQUFLQyxNQUFNLEVBQUVYLE9BQU8sRUFBRTtRQUMxQixNQUFNWSwyQkFBMkIsSUFBSSxDQUFDQyxTQUFTLElBQUksR0FBRztRQUV0RGIsUUFBUWMsS0FBSyxDQUFDLENBQUMsYUFBYSxFQUFFRix5QkFBeUIsd0JBQXdCLENBQUM7UUFFaEYsSUFBSSxDQUFDUCxVQUFVLENBQUNVLGFBQWEsQ0FBQ0osUUFBUVg7UUFFdEMsTUFBTWdCLFlBQVlDLElBQUFBLDRDQUFnQyxFQUFDTixRQUFRLElBQUksQ0FBQ04sVUFBVSxFQUFFTCxVQUN0RWtCLFFBQVEsTUFBTSxJQUFJLENBQUNaLFdBQVcsQ0FBQ2EsUUFBUSxDQUFDSCxXQUFXaEIsVUFDbkRvQixZQUFZRixNQUFNWCxPQUFPLElBQ3pCYyx1QkFBdUIsSUFBSSxDQUFDakIsSUFBSSxDQUFDa0IsU0FBUyxDQUFDRjtRQUVqRCxJQUFJLENBQUNDLHNCQUFzQjtZQUN6QixNQUFNRSxjQUFjTCxNQUFNTCxTQUFTLElBQzdCVyxhQUFhLElBQUksQ0FBQ3BCLElBQUksQ0FBQ1MsU0FBUyxJQUNoQ1ksVUFBVSxDQUFDLEtBQUssRUFBRUYsWUFBWSxXQUFXLEVBQUVILFVBQVUsNEJBQTRCLEVBQUVSLHlCQUF5Qix5QkFBeUIsRUFBRVksV0FBVyxPQUFPLENBQUMsRUFDMUpFLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7WUFFeEMsTUFBTUM7UUFDUjtRQUVBMUIsUUFBUTZCLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRWpCLHlCQUF5QixzQkFBc0IsQ0FBQztRQUVoRixPQUFPTTtJQUNUO0lBRUEsT0FBT1ksT0FBTyxxQkFBcUI7QUFDckMifQ==
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _occamlanguages = require("occam-languages");
|
|
12
|
-
const _elements = require("../../elements");
|
|
13
|
-
const _default = (0, _elements.define)(class ReturnStatement extends _occamlanguages.Element {
|
|
14
|
-
constructor(context, string, node, breakPoint, value){
|
|
15
|
-
super(context, string, node, breakPoint);
|
|
16
|
-
this.value = value;
|
|
17
|
-
}
|
|
18
|
-
getExpression() {
|
|
19
|
-
return this.value;
|
|
20
|
-
}
|
|
21
|
-
evaluate(context) {
|
|
22
|
-
let value;
|
|
23
|
-
const returnStatementString = this.getString(); ///
|
|
24
|
-
context.trace(`Evaluating the '${returnStatementString}' return statement...`);
|
|
25
|
-
value = this.value.evaluate(context);
|
|
26
|
-
const valueString = value.getString();
|
|
27
|
-
context.debug(`...evaluated the '${returnStatementString}' return statement as '${valueString}'.`);
|
|
28
|
-
return value;
|
|
29
|
-
}
|
|
30
|
-
static name = "ReturnStatement";
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3N0YXRlbWVudC9yZXR1cm4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUmV0dXJuU3RhdGVtZW50IGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFsdWUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0RXhwcmVzc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCByZXR1cm5TdGF0ZW1lbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtyZXR1cm5TdGF0ZW1lbnRTdHJpbmd9JyByZXR1cm4gc3RhdGVtZW50Li4uYCk7XG5cbiAgICB2YWx1ZSA9IHRoaXMudmFsdWUuZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtyZXR1cm5TdGF0ZW1lbnRTdHJpbmd9JyByZXR1cm4gc3RhdGVtZW50IGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUmV0dXJuU3RhdGVtZW50XCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJSZXR1cm5TdGF0ZW1lbnQiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFsdWUiLCJnZXRFeHByZXNzaW9uIiwiZXZhbHVhdGUiLCJyZXR1cm5TdGF0ZW1lbnRTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbHVlU3RyaW5nIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQUE7OztnQ0FKd0I7MEJBRUQ7TUFFdkIsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyx3QkFBd0JDLHVCQUFPO0lBQ3pELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsS0FBSyxDQUFFO1FBQ3BELEtBQUssQ0FBQ0osU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO0lBQ2Y7SUFFQUMsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNELEtBQUs7SUFDbkI7SUFFQUUsU0FBU04sT0FBTyxFQUFFO1FBQ2hCLElBQUlJO1FBRUosTUFBTUcsd0JBQXdCLElBQUksQ0FBQ0MsU0FBUyxJQUFLLEdBQUc7UUFFcERSLFFBQVFTLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixzQkFBc0IscUJBQXFCLENBQUM7UUFFN0VILFFBQVEsSUFBSSxDQUFDQSxLQUFLLENBQUNFLFFBQVEsQ0FBQ047UUFFNUIsTUFBTVUsY0FBY04sTUFBTUksU0FBUztRQUVuQ1IsUUFBUVcsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVKLHNCQUFzQix1QkFBdUIsRUFBRUcsWUFBWSxFQUFFLENBQUM7UUFFakcsT0FBT047SUFDVDtJQUVBLE9BQU9RLE9BQU8sa0JBQWtCO0FBQ2xDIn0=
|
package/lib/element/step.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _occamlanguages = require("occam-languages");
|
|
12
|
-
const _elements = require("../elements");
|
|
13
|
-
const _default = (0, _elements.define)(class Step extends _occamlanguages.Element {
|
|
14
|
-
constructor(context, string, node, breakPoint, arrayAssignment, objectAssigment, variableAssignments){
|
|
15
|
-
super(context, string, node, breakPoint);
|
|
16
|
-
this.arrayAssignment = arrayAssignment;
|
|
17
|
-
this.objectAssigment = objectAssigment;
|
|
18
|
-
this.variableAssignments = variableAssignments;
|
|
19
|
-
}
|
|
20
|
-
getArrayAssignment() {
|
|
21
|
-
return this.arrayAssignment;
|
|
22
|
-
}
|
|
23
|
-
getObjectAssigment() {
|
|
24
|
-
return this.objectAssigment;
|
|
25
|
-
}
|
|
26
|
-
getVariableAssignments() {
|
|
27
|
-
return this.variableAssignments;
|
|
28
|
-
}
|
|
29
|
-
async evaluate(context) {
|
|
30
|
-
if (false) {
|
|
31
|
-
///
|
|
32
|
-
} else if (this.arrayAssignment !== null) {
|
|
33
|
-
this.arrayAssignment.evaluate(context);
|
|
34
|
-
} else if (this.objectAssigment !== null) {
|
|
35
|
-
this.objectAssigment.evaluate(context);
|
|
36
|
-
} else if (this.variableAssignments !== null) {
|
|
37
|
-
await this.variableAssignments.evaluate(context);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
static name = "Step";
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3N0ZXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgU3RlcCBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGFycmF5QXNzaWdubWVudCwgb2JqZWN0QXNzaWdtZW50LCB2YXJpYWJsZUFzc2lnbm1lbnRzKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuYXJyYXlBc3NpZ25tZW50ID0gYXJyYXlBc3NpZ25tZW50O1xuICAgIHRoaXMub2JqZWN0QXNzaWdtZW50ID0gb2JqZWN0QXNzaWdtZW50O1xuICAgIHRoaXMudmFyaWFibGVBc3NpZ25tZW50cyA9IHZhcmlhYmxlQXNzaWdubWVudHM7XG4gIH1cblxuICBnZXRBcnJheUFzc2lnbm1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJyYXlBc3NpZ25tZW50O1xuICB9XG5cbiAgZ2V0T2JqZWN0QXNzaWdtZW50KCkge1xuICAgIHJldHVybiB0aGlzLm9iamVjdEFzc2lnbWVudDtcbiAgfVxuXG4gIGdldFZhcmlhYmxlQXNzaWdubWVudHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGVBc3NpZ25tZW50cztcbiAgfVxuXG4gIGFzeW5jIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy5hcnJheUFzc2lnbm1lbnQgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuYXJyYXlBc3NpZ25tZW50LmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5vYmplY3RBc3NpZ21lbnQgIT09IG51bGwpIHtcbiAgICAgIHRoaXMub2JqZWN0QXNzaWdtZW50LmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy52YXJpYWJsZUFzc2lnbm1lbnRzICE9PSBudWxsKSB7XG4gICAgICBhd2FpdCB0aGlzLnZhcmlhYmxlQXNzaWdubWVudHMuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlN0ZXBcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlN0ZXAiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwiYXJyYXlBc3NpZ25tZW50Iiwib2JqZWN0QXNzaWdtZW50IiwidmFyaWFibGVBc3NpZ25tZW50cyIsImdldEFycmF5QXNzaWdubWVudCIsImdldE9iamVjdEFzc2lnbWVudCIsImdldFZhcmlhYmxlQXNzaWdubWVudHMiLCJldmFsdWF0ZSIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBQTs7O2dDQUp3QjswQkFFRDtNQUV2QixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGFBQWFDLHVCQUFPO0lBQzlDLFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsZUFBZSxFQUFFQyxlQUFlLEVBQUVDLG1CQUFtQixDQUFFO1FBQ3BHLEtBQUssQ0FBQ04sU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxlQUFlLEdBQUdBO1FBQ3ZCLElBQUksQ0FBQ0MsZUFBZSxHQUFHQTtRQUN2QixJQUFJLENBQUNDLG1CQUFtQixHQUFHQTtJQUM3QjtJQUVBQyxxQkFBcUI7UUFDbkIsT0FBTyxJQUFJLENBQUNILGVBQWU7SUFDN0I7SUFFQUkscUJBQXFCO1FBQ25CLE9BQU8sSUFBSSxDQUFDSCxlQUFlO0lBQzdCO0lBRUFJLHlCQUF5QjtRQUN2QixPQUFPLElBQUksQ0FBQ0gsbUJBQW1CO0lBQ2pDO0lBRUEsTUFBTUksU0FBU1YsT0FBTyxFQUFFO1FBQ3RCLElBQUksT0FBTztRQUNULEdBQUc7UUFDTCxPQUFPLElBQUksSUFBSSxDQUFDSSxlQUFlLEtBQUssTUFBTTtZQUN4QyxJQUFJLENBQUNBLGVBQWUsQ0FBQ00sUUFBUSxDQUFDVjtRQUNoQyxPQUFPLElBQUksSUFBSSxDQUFDSyxlQUFlLEtBQUssTUFBTTtZQUN4QyxJQUFJLENBQUNBLGVBQWUsQ0FBQ0ssUUFBUSxDQUFDVjtRQUNoQyxPQUFPLElBQUksSUFBSSxDQUFDTSxtQkFBbUIsS0FBSyxNQUFNO1lBQzVDLE1BQU0sSUFBSSxDQUFDQSxtQkFBbUIsQ0FBQ0ksUUFBUSxDQUFDVjtRQUMxQztJQUNGO0lBRUEsT0FBT1csT0FBTyxPQUFPO0FBQ3ZCIn0=
|