occam-furtle 2.0.331 → 2.0.334

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.
@@ -5,13 +5,15 @@ import { Query } from "occam-query";
5
5
  import elements from "../elements";
6
6
 
7
7
  import { BOOLEAN_TYPE } from "../types";
8
- import { variableStringFromName,
8
+ import { ternaryStringFromTerm,
9
+ variableStringFromName,
10
+ termStringFromPrimitiveAndProperties,
9
11
  procedureDeclarationStringFromProcedure,
10
12
  returnBlockStringFromReturnStatementNode,
11
13
  expressionStringFromPrimitiveAndProperties,
14
+ variableAssignmentStringFromTypeAndVariable,
12
15
  someStringFromVariableAndAnonymousProcedure,
13
16
  everyStringFromVariableAndAnonymousProcedure,
14
- variableAssignmentStringFromVariable,
15
17
  procedureStringFromTypeLabelParametersAndReturnBlock,
16
18
  variableAssignmentStringFromVariableAssignmentsArray,
17
19
  anonymousProcedureStringFromTypeParametersAndReturnBlock,
@@ -42,11 +44,22 @@ export function someFromSomeNode(someNode, context) {
42
44
 
43
45
  export function termFromTermNode(termNode, context) {
44
46
  const { Term } = elements,
45
- node = termNode, ///
46
- string = context.nodeAsString(node),
47
47
  variable = variableFromTermNode(termNode, context),
48
48
  primitive = primitiveFromTermNode(termNode, context),
49
- term = new Term(string, variable, primitive);
49
+ negatedTerm = negatedTermFromTermNode(termNode, context),
50
+ logicalTerm = logicalTermFromTermNode(termNode, context),
51
+ bracketedTerm = bracketedTermFromTermNode(termNode, context),
52
+ comparisonTerm = comparisonTermFromTermNode(termNode, context),
53
+ properties = [
54
+ variable,
55
+ negatedTerm,
56
+ logicalTerm,
57
+ bracketedTerm,
58
+ comparisonTerm
59
+ ],
60
+ termString = termStringFromPrimitiveAndProperties(primitive, properties, context),
61
+ string = termString, ///
62
+ term = new Term(string, variable, primitive, negatedTerm, logicalTerm, bracketedTerm, comparisonTerm);
50
63
 
51
64
  return term;
52
65
  }
@@ -107,12 +120,12 @@ export function reduceFromReduceNode(reduceNode, context) {
107
120
 
108
121
  export function ternaryFromTernaryNode(ternaryNode, context) {
109
122
  const { Ternary } = elements,
110
- node = ternaryNode, ///
111
- string = context.nodeAsString(node),
112
- expression = expressionFromTernaryNode(ternaryNode, context),
123
+ term = termFromTernaryNode(ternaryNode, context),
113
124
  ifExpression = ifExpressionFromTernaryNode(ternaryNode, context),
114
125
  elseExpression = elseExpressionFromTernaryNode(ternaryNode, context),
115
- ternary = new Ternary(string, expression, ifExpression, elseExpression);
126
+ ternaryString = ternaryStringFromTerm(term),
127
+ string = ternaryString, ///
128
+ ternary = new Ternary(string, term, ifExpression, elseExpression);
116
129
 
117
130
  return ternary;
118
131
  }
@@ -227,12 +240,12 @@ export function expressionFromExpressionNode(expressionNode, context) {
227
240
  variable,
228
241
  nodeQuery,
229
242
  nodesQuery,
230
- comparisonExpression,
231
243
  returnBlock,
232
244
  procedureCall,
233
245
  negatedExpression,
234
246
  logicalExpression,
235
- bracketedExpression
247
+ bracketedExpression,
248
+ comparisonExpression
236
249
  ],
237
250
  expressionString = expressionStringFromPrimitiveAndProperties(primitive, properties, context),
238
251
  string = expressionString, ///
@@ -339,6 +352,19 @@ export function negatedExpressionFromNegatedExpressionNode(negatedExpressionNode
339
352
  return negatedExpression;
340
353
  }
341
354
 
355
+ export function logicalExpressionFromLogicalExpressionNode(logicalExpressionNode, context) {
356
+ const { LogicalExpression } = elements,
357
+ node = logicalExpressionNode, ///
358
+ string = context.nodeAsString(node),
359
+ type = typeFromLogicalExpressionNode(logicalExpressionNode, context),
360
+ disjunction = disjunctionFromLogicalExpressionNode(logicalExpressionNode, context),
361
+ leftExpression = leftExpressionFromLogicalExpressionNode(logicalExpressionNode, context),
362
+ rightExpression = rightExpressionFromLogicalExpressionNode(logicalExpressionNode, context),
363
+ logicalExpression = new LogicalExpression(string, type, disjunction, leftExpression, rightExpression);
364
+
365
+ return logicalExpression;
366
+ }
367
+
342
368
  export function anonymousProcedureFromAnonymousProcedureNode(anonymousProcedureNode, context) {
343
369
  const { AnonymousProcedure } = elements,
344
370
  type = typeFromProcedureAnonymousProcedureNode(anonymousProcedureNode, context),
@@ -351,16 +377,6 @@ export function anonymousProcedureFromAnonymousProcedureNode(anonymousProcedureN
351
377
  return anonymousProcedure;
352
378
  }
353
379
 
354
- export function bracketedExpressionFromBracketedExpressionNode(bracketedExpressionNode, context) {
355
- const { BracketedExpression } = elements,
356
- node = bracketedExpressionNode, ///
357
- string = context.nodeAsString(node), ///
358
- expression = expressionFromBracketedExpressionNode(bracketedExpressionNode, context),
359
- bracketedExpression = new BracketedExpression(string, expression);
360
-
361
- return bracketedExpression;
362
- }
363
-
364
380
  export function variableAssignmentsFromVariableAssignmentsNode(variableAssignmentsNode, context) {
365
381
  const { VariableAssignments } = elements,
366
382
  variableAssignmentsArray = variableAssignmentsArrayFromVariableAssignmentsNode(variableAssignmentsNode, context),
@@ -372,14 +388,14 @@ export function variableAssignmentsFromVariableAssignmentsNode(variableAssignmen
372
388
  return variableAssignments;
373
389
  }
374
390
 
375
- export function procedureDeclarationFromProcedureDeclarationNode(procedureDeclarationNode, context) {
376
- const { ProcedureDeclaration } = elements,
377
- procedure = procedureFromProcedureDeclarationNode(procedureDeclarationNode, context),
378
- procedureDeclarationString = procedureDeclarationStringFromProcedure(procedure),
379
- string = procedureDeclarationString, ///
380
- procedureDeclaration = new ProcedureDeclaration(string, procedure);
391
+ export function bracketedExpressionFromBracketedExpressionNode(bracketedExpressionNode, context) {
392
+ const { BracketedExpression } = elements,
393
+ node = bracketedExpressionNode, ///
394
+ string = context.nodeAsString(node), ///
395
+ expression = expressionFromBracketedExpressionNode(bracketedExpressionNode, context),
396
+ bracketedExpression = new BracketedExpression(string, expression);
381
397
 
382
- return procedureDeclaration;
398
+ return bracketedExpression;
383
399
  }
384
400
 
385
401
  export function comparisonExpressionFromComparisonExpressionNode(comparisonExpressionNode, context) {
@@ -387,19 +403,36 @@ export function comparisonExpressionFromComparisonExpressionNode(comparisonExpre
387
403
  node = comparisonExpressionNode, ///
388
404
  string = context.nodeAsString(node),
389
405
  negated = negatedFromComparisonExpressionNode(comparisonExpressionNode, context),
390
- leftExpression = leftExpressionFromCompzrisonNode(comparisonExpressionNode, context),
391
- rightExpression = rightExpressionFromCompzrisonNode(comparisonExpressionNode, context),
406
+ leftExpression = leftExpressionFromCompzrisonExpressionNode(comparisonExpressionNode, context),
407
+ rightExpression = rightExpressionFromCompzrisonExpressionNode(comparisonExpressionNode, context),
392
408
  comparisonExpression = new ComparisonExpression(string, negated, leftExpression, rightExpression);
393
409
 
394
410
  return comparisonExpression;
395
411
  }
396
412
 
413
+ export function procedureDeclarationFromProcedureDeclarationNode(procedureDeclarationNode, context) {
414
+ const { ProcedureDeclaration } = elements,
415
+ procedure = procedureFromProcedureDeclarationNode(procedureDeclarationNode, context),
416
+ procedureDeclarationString = procedureDeclarationStringFromProcedure(procedure),
417
+ string = procedureDeclarationString, ///
418
+ procedureDeclaration = new ProcedureDeclaration(string, procedure);
419
+
420
+ return procedureDeclaration;
421
+ }
422
+
397
423
  export function nameFromLabelNode(labelNode, context) {
398
424
  const name = labelNode.getName();
399
425
 
400
426
  return name;
401
427
  }
402
428
 
429
+ export function termFromTernaryNode(ternaryNode, context) {
430
+ const termNode = ternaryNode.getTermNode(),
431
+ term = termFromTermNode(termNode, context);
432
+
433
+ return term;
434
+ }
435
+
403
436
  export function variableFromSomeNode(someNode, context) {
404
437
  const variableNode = someNode.getVariableNode(), ///
405
438
  variable = variableFromVariableNode(variableNode, context);
@@ -533,6 +566,43 @@ export function everyFromExpressionNode(expressionNode, context) {
533
566
  return every;
534
567
  }
535
568
 
569
+ export function negatedTermFromTermNode(termNode, context) {
570
+ let negatedTerm = null;
571
+
572
+ const negatedTermNode = termNode.getNegatedTermNode();
573
+
574
+ if (negatedTermNode !== null) {
575
+ negatedTerm = negatedTermFromNegatedTermNode(negatedTermNode, context);
576
+ }
577
+
578
+ return negatedTerm;
579
+ }
580
+
581
+ export function logicalTermFromTermNode(termNode, context) {
582
+ let logicalTerm = null;
583
+
584
+ const logicalTermNode = termNode.getLogicalTermNode();
585
+
586
+ if (logicalTermNode !== null) {
587
+ logicalTerm = logicalTermFromLogicalTermNode(logicalTermNode, context);
588
+ }
589
+
590
+ return logicalTerm;
591
+ }
592
+
593
+ export function typeFromLogicalTermNode(logicalTermNode, context) {
594
+ const type = BOOLEAN_TYPE;
595
+
596
+ return type;
597
+ }
598
+
599
+ export function termFromNegatedTermNode(negatedTermNode, context) {
600
+ const termNode = negatedTermNode.getTermNode(),
601
+ term = termFromTermNode(termNode, context);
602
+
603
+ return term;
604
+ }
605
+
536
606
  export function booleanFromPrimitiveNode(primitiveNode, context) {
537
607
  const boolean = primitiveNode.getBoolean();
538
608
 
@@ -569,13 +639,6 @@ export function stepsFromReturnBlockNode(returnBlockNode, context) {
569
639
  return steps;
570
640
  }
571
641
 
572
- export function expressionFromTernaryNode(ternaryNode, context) {
573
- const expressionNode = ternaryNode.getExpressionNode(),
574
- expression = expressionFromExpressionNode(expressionNode, context);
575
-
576
- return expression;
577
- }
578
-
579
642
  export function variableFromNodeQueryNode(nodeQueryNode, context) {
580
643
  const variableNode = nodeQueryNode.getVariableNode(),
581
644
  variable = variableFromVariableNode(variableNode, context);
@@ -595,6 +658,37 @@ export function ternaryFromExpressionNode(expressionNode, context) {
595
658
  return ternary;
596
659
  }
597
660
 
661
+ export function bracketedTermFromTermNode(termNode, context) {
662
+ let bracketedTerm = null;
663
+
664
+ const bracketedTermNode = termNode.getBracketedTermNode();
665
+
666
+ if (bracketedTermNode !== null) {
667
+ bracketedTerm = bracketedTermFromBracketedTermNode(bracketedTermNode, context);
668
+ }
669
+
670
+ return bracketedTerm;
671
+ }
672
+
673
+ export function termFromBracketedTermNode(bracketedTermNode, context) {
674
+ const termNode = bracketedTermNode.getTermNode(),
675
+ term = termFromTermNode(termNode, context);
676
+
677
+ return term;
678
+ }
679
+
680
+ export function comparisonTermFromTermNode(termNOde, context) {
681
+ let comparisonTerm = null;
682
+
683
+ const comparisonTermNode = termNOde.getComparisonTermNode();
684
+
685
+ if (comparisonTermNode !== null) {
686
+ comparisonTerm = comparisonTermFromComparisonTermNode(comparisonTermNode, context);
687
+ }
688
+
689
+ return comparisonTerm;
690
+ }
691
+
598
692
  export function expressionFromVariableNode(variableNode, context) {
599
693
  const expression = null;
600
694
 
@@ -639,6 +733,13 @@ export function nameFromNamedParameterNode(namedParameterNode, context) {
639
733
  return name;
640
734
  }
641
735
 
736
+ export function leftTermFromLogicalTermNode(logicalTermNode, context) {
737
+ const leftTermNode = logicalTermNode.getLeftTermNode(),
738
+ leftTerm = termFromTermNode(leftTermNode, context);
739
+
740
+ return leftTerm;
741
+ }
742
+
642
743
  export function arrayAssignmentFromStepNode(stepNode, context) {
643
744
  let arrayAssignment = null;
644
745
 
@@ -719,6 +820,19 @@ export function nodesQueryFromExpressionNode(expressionNode, context) {
719
820
  return nodesQuery;
720
821
  }
721
822
 
823
+ export function rightTermFromLogicalTermNode(logicalTermNode, context) {
824
+ const rightTermNode = logicalTermNode.getRightTermNode(),
825
+ rightTerm = termFromTermNode(rightTermNode, context);
826
+
827
+ return rightTerm;
828
+ }
829
+
830
+ export function negatedFromComparisonTermNode(comparisonTermNode, context) {
831
+ const negated = comparisonTermNode.isNegated();
832
+
833
+ return negated;
834
+ }
835
+
722
836
  export function elseExpressionFromTernaryNode(ternaryNode, context) {
723
837
  const elseExpressionNode = ternaryNode.getElseExpressionNode(),
724
838
  elseExpression = expressionFromExpressionNode(elseExpressionNode, context);
@@ -744,7 +858,7 @@ export function typeFromNegatedExpressionNode(negatedExpressionNode, context) {
744
858
  return type;
745
859
  }
746
860
 
747
- export function typeFromLogcialExpressionNode(logicalExpressionNode, context) {
861
+ export function typeFromLogicalExpressionNode(logicalExpressionNode, context) {
748
862
  const type = BOOLEAN_TYPE;
749
863
 
750
864
  return type;
@@ -776,6 +890,44 @@ export function stringLiteralFromPrimitiveNode(primitiveNode, context) {
776
890
  return stringLiteral;
777
891
  }
778
892
 
893
+ export function leftTermFromCompzrisonTermNode(comparisonTermNode, context) {
894
+ const leftTermNode = comparisonTermNode.getLeftTermNode(),
895
+ leftTerm = termFromTermNode(leftTermNode, context);
896
+
897
+ return leftTerm;
898
+ }
899
+
900
+ export function disjunctionFromLogicalTermNode(logicalTermNode, context) {
901
+ const disjunction = logicalTermNode.isDisjunction();
902
+
903
+ return disjunction;
904
+ }
905
+
906
+ export function negatedTermFromNegatedTermNode(negatedTermNode, context) {
907
+ const { NegatedTerm } = elements,
908
+ node = negatedTermNode, ///
909
+ string = context.nodeAsString(node),
910
+ termNode = negatedTermNode.getTermNode(),
911
+ type = typeFromNegatedTermNode(termNode, context),
912
+ term = termFromNegatedTermNode(negatedTermNode, context),
913
+ negatedTerm = new NegatedTerm(string, type, term);
914
+
915
+ return negatedTerm;
916
+ }
917
+
918
+ export function logicalTermFromLogicalTermNode(logicalTermNode, context) {
919
+ const { LogicalTerm } = elements,
920
+ node = logicalTermNode, ///
921
+ string = context.nodeAsString(node),
922
+ type = typeFromLogicalTermNode(logicalTermNode, context),
923
+ disjunction = disjunctionFromLogicalTermNode(logicalTermNode, context),
924
+ leftTerm = leftTermFromLogicalTermNode(logicalTermNode, context),
925
+ rightTerm = rightTermFromLogicalTermNode(logicalTermNode, context),
926
+ logicalTerm = new LogicalTerm(string, type, disjunction, leftTerm, rightTerm);
927
+
928
+ return logicalTerm;
929
+ }
930
+
779
931
  export function variableFromTypeAndVariableNode(type, variableNode, context) {
780
932
  const { Variable } = elements,
781
933
  name = nameFromVariableNode(variableNode),
@@ -832,6 +984,13 @@ export function variableFromArrayAssignmentNode(arrayAssignmentNode, context) {
832
984
  return variable;
833
985
  }
834
986
 
987
+ export function rightTermFromCompzrisonTermNode(comparisonTermNode, context) {
988
+ const rightTermNode = comparisonTermNode.getLeftTermNode(),
989
+ rightTerm = termFromTermNode(rightTermNode, context);
990
+
991
+ return rightTerm;
992
+ }
993
+
835
994
  export function anonymousProcedureFromReduceNode(reduceNode, context) {
836
995
  const anonymousProcedureNode = reduceNode.getAnonymousProcedureNode(),
837
996
  anonymousProcedure = anonymousProcedureFromAnonymousProcedureNode(anonymousProcedureNode, context);
@@ -839,13 +998,6 @@ export function anonymousProcedureFromReduceNode(reduceNode, context) {
839
998
  return anonymousProcedure;
840
999
  }
841
1000
 
842
- export function leftExpressionFromCompzrisonNode(comparisonExpressionNode, context) {
843
- const leftExpressionNode = comparisonExpressionNode.getLeftExpressionNode(),
844
- leftExpression = expressionFromExpressionNode(leftExpressionNode, context);
845
-
846
- return leftExpression;
847
- }
848
-
849
1001
  export function variableFromObjectAssignmentNode(objectAssignmentNode, context) {
850
1002
  const variableNode = objectAssignmentNode.getVariableNode(),
851
1003
  variable = variableFromVariableNode(variableNode, context);
@@ -865,13 +1017,6 @@ export function expressionFromTypeAndVariableNode(type, variableNode, context) {
865
1017
  return expression;
866
1018
  }
867
1019
 
868
- export function rightExpressionFromCompzrisonNode(comparisonExpressionNode, context) {
869
- const rightExpressionNode = comparisonExpressionNode.getLeftExpressionNode(),
870
- rightExpression = expressionFromExpressionNode(rightExpressionNode, context);
871
-
872
- return rightExpression;
873
- }
874
-
875
1020
  export function parametersFromArrayAssignmentNode(arrayAssignmentNode, context) {
876
1021
  const parametersNode = arrayAssignmentNode.getParametersNode(),
877
1022
  parameters = parametersFromParametersNode(parametersNode, context);
@@ -893,6 +1038,16 @@ export function returnStatementFromReturnBlockNode(returnBlockNode, context) {
893
1038
  return returnStatement;
894
1039
  }
895
1040
 
1041
+ export function bracketedTermFromBracketedTermNode(bracketedTermNode, context) {
1042
+ const { BracketedTerm } = elements,
1043
+ node = bracketedTermNode, ///
1044
+ string = context.nodeAsString(node), ///
1045
+ term = termFromBracketedTermNode(bracketedTermNode, context),
1046
+ bracketedTerm = new BracketedTerm(string, term);
1047
+
1048
+ return bracketedTerm;
1049
+ }
1050
+
896
1051
  export function negatedExpressionFromExpressionNode(expressionNode, context) {
897
1052
  let negatedExpression = null;
898
1053
 
@@ -905,16 +1060,11 @@ export function negatedExpressionFromExpressionNode(expressionNode, context) {
905
1060
  return negatedExpression;
906
1061
  }
907
1062
 
908
- export function logicalExpressionFromExpressionNode(expressionNode, context) {
909
- let logicalExpression = null;
910
-
911
- const logicalExpressionNode = expressionNode.getLogicalExpressionNode();
912
-
913
- if (logicalExpressionNode !== null) {
914
- logicalExpression = logicalExpressionFromLogicalExpressionNode(logicalExpressionNode, context);
915
- }
1063
+ export function expressionFromNegatedExpressionNode(negatedExpressionNode, context) {
1064
+ const expressionNode = negatedExpressionNode.getExpressionNode(),
1065
+ expression = expressionFromExpressionNode(expressionNode, context);
916
1066
 
917
- return logicalExpression;
1067
+ return expression;
918
1068
  }
919
1069
 
920
1070
  export function negatedFromComparisonExpressionNode(comparisonExpressionNode, context) {
@@ -923,11 +1073,16 @@ export function negatedFromComparisonExpressionNode(comparisonExpressionNode, co
923
1073
  return negated;
924
1074
  }
925
1075
 
926
- export function expressionFromNegatedExpressionNode(negatedExpressionNode, context) {
927
- const expressionNode = negatedExpressionNode.getExpressionNode(),
928
- expression = expressionFromExpressionNode(expressionNode, context);
1076
+ export function logicalExpressionFromExpressionNode(expressionNode, context) {
1077
+ let logicalExpression = null;
929
1078
 
930
- return expression;
1079
+ const logicalExpressionNode = expressionNode.getLogicalExpressionNode();
1080
+
1081
+ if (logicalExpressionNode !== null) {
1082
+ logicalExpression = logicalExpressionFromLogicalExpressionNode(logicalExpressionNode, context);
1083
+ }
1084
+
1085
+ return logicalExpression;
931
1086
  }
932
1087
 
933
1088
  export function expressionFromVariableAssignmentNode(variableAssigmentNode, context) {
@@ -950,6 +1105,18 @@ export function parametersFromAnonymousProcedureNode(anonymousProcedureNode, con
950
1105
  return parameters;
951
1106
  }
952
1107
 
1108
+ export function comparisonTermFromComparisonTermNode(comparisonTermNode, context) {
1109
+ const { ComparisonTerm } = elements,
1110
+ node = comparisonTermNode, ///
1111
+ string = context.nodeAsString(node),
1112
+ negated = negatedFromComparisonTermNode(comparisonTermNode, context),
1113
+ leftTerm = leftTermFromCompzrisonTermNode(comparisonTermNode, context),
1114
+ rightTerm = rightTermFromCompzrisonTermNode(comparisonTermNode, context),
1115
+ comparisonTerm = new ComparisonTerm(string, negated, leftTerm, rightTerm);
1116
+
1117
+ return comparisonTerm;
1118
+ }
1119
+
953
1120
  export function returnBlockFromAnonymousProcedureNode(anonymousProcedureNode, context) {
954
1121
  const returnBlockNode = anonymousProcedureNode.getReturnBlockNode(),
955
1122
  returnBlock = returnBlockFromReturnBlockNode(returnBlockNode, context);
@@ -957,6 +1124,19 @@ export function returnBlockFromAnonymousProcedureNode(anonymousProcedureNode, co
957
1124
  return returnBlock;
958
1125
  }
959
1126
 
1127
+ export function procedureFromProcedureDeclarationNode(procedureDeclarationNode, context) {
1128
+ const { Procedure } = elements,
1129
+ type = typeFromProcedureDeclarationNode(procedureDeclarationNode, context),
1130
+ label = labelFromProcedureDeclarationNode(procedureDeclarationNode, context),
1131
+ parameters = parametersFromProcedureDeclarationNode(procedureDeclarationNode, context),
1132
+ returnBlock = returnBlockFromProcedureDeclarationNode(procedureDeclarationNode, context),
1133
+ procedureString = procedureStringFromTypeLabelParametersAndReturnBlock(type, label, parameters, returnBlock),
1134
+ string = procedureString, ///
1135
+ procedure = new Procedure(string, type, label, parameters, returnBlock);
1136
+
1137
+ return procedure;
1138
+ }
1139
+
960
1140
  export function bracketedExpressionFromExpressionNode(expressionNode, context) {
961
1141
  let bracketedExpression = null;
962
1142
 
@@ -971,24 +1151,11 @@ export function bracketedExpressionFromExpressionNode(expressionNode, context) {
971
1151
 
972
1152
  export function expressionFromBracketedExpressionNode(bracketedExpressionNode, context) {
973
1153
  const expressionNode = bracketedExpressionNode.getExpressionNode(),
974
- expression = expressionFromExpressionNode(expressionNode, context);
1154
+ expression = expressionFromExpressionNode(expressionNode, context);
975
1155
 
976
1156
  return expression;
977
1157
  }
978
1158
 
979
- export function procedureFromProcedureDeclarationNode(procedureDeclarationNode, context) {
980
- const { Procedure } = elements,
981
- type = typeFromProcedureDeclarationNode(procedureDeclarationNode, context),
982
- label = labelFromProcedureDeclarationNode(procedureDeclarationNode, context),
983
- parameters = parametersFromProcedureDeclarationNode(procedureDeclarationNode, context),
984
- returnBlock = returnBlockFromProcedureDeclarationNode(procedureDeclarationNode, context),
985
- procedureString = procedureStringFromTypeLabelParametersAndReturnBlock(type, label, parameters, returnBlock),
986
- string = procedureString, ///
987
- procedure = new Procedure(string, type, label, parameters, returnBlock);
988
-
989
- return procedure;
990
- }
991
-
992
1159
  export function comparisonExpressionFromExpressionNode(expressionNOde, context) {
993
1160
  let comparisonExpression = null;
994
1161
 
@@ -1042,24 +1209,25 @@ export function variableFromTypeAndVariableAssignmentNode(type, variableAssignme
1042
1209
  return variable;
1043
1210
  }
1044
1211
 
1045
- export function logicalExpressionFromLogicalExpressionNode(logicalExpressionNode, context) {
1046
- const { LogicalExpression } = elements,
1047
- node = logicalExpressionNode, ///
1048
- string = context.nodeAsString(node),
1049
- type = typeFromLogcialExpressionNode(logicalExpressionNode, context),
1050
- disjunction = disjunctionFromLogicalExpressionNode(logicalExpressionNode, context),
1051
- leftExpression = leftExpressionFromLogicalExpressionNode(logicalExpressionNode, context),
1052
- rightExpression = rightExpressionFromLogicalExpressionNode(logicalExpressionNode, context),
1053
- logicalExpression = new LogicalExpression(string, type, disjunction, leftExpression, rightExpression);
1212
+ export function leftExpressionFromCompzrisonExpressionNode(comparisonExpressionNode, context) {
1213
+ const leftExpressionNode = comparisonExpressionNode.getLeftExpressionNode(),
1214
+ leftExpression = expressionFromExpressionNode(leftExpressionNode, context);
1054
1215
 
1055
- return logicalExpression;
1216
+ return leftExpression;
1217
+ }
1218
+
1219
+ export function rightExpressionFromCompzrisonExpressionNode(comparisonExpressionNode, context) {
1220
+ const rightExpressionNode = comparisonExpressionNode.getLeftExpressionNode(),
1221
+ rightExpression = expressionFromExpressionNode(rightExpressionNode, context);
1222
+
1223
+ return rightExpression;
1056
1224
  }
1057
1225
 
1058
1226
  export function variableAssignmentFromTypeAndVariableAssignmentNode(type, variableAssignmentNode, context) {
1059
1227
  const { VariableAssignment } = elements,
1060
1228
  variable = variableFromTypeAndVariableAssignmentNode(type, variableAssignmentNode, context),
1061
1229
  expression = expressionFromVariableAssignmentNode(variableAssignmentNode, context),
1062
- variableAssignmentString = variableAssignmentStringFromVariable(expression, variable, context),
1230
+ variableAssignmentString = variableAssignmentStringFromTypeAndVariable(type, variable, context),
1063
1231
  string = variableAssignmentString, ///
1064
1232
  assignment = new VariableAssignment(string, variable, expression);
1065
1233
 
@@ -5,6 +5,13 @@ import nullNode from "../nullNode";
5
5
  import { NULL } from "../constants";
6
6
  import { stringFromStringLiteral } from "./stringLiteral";
7
7
 
8
+ export function ternaryStringFromTerm(term) {
9
+ const termString = term.getString(),
10
+ ternaryString = `if (${termString}) { ... } else { ... }`;
11
+
12
+ return ternaryString;
13
+ }
14
+
8
15
  export function variableStringFromName(name) {
9
16
  const variableString = name; ///
10
17
 
@@ -53,9 +60,30 @@ export function primtiveStringFromStringLiteral(stringLiteral) {
53
60
  return primtiveString;
54
61
  }
55
62
 
56
- export function variableAssignmentStringFromVariable(expression, variable) {
57
- const type = variable.getType(),
58
- variableString = variable.getString(),
63
+ export function termStringFromPrimitiveAndProperties(primitive, properties) {
64
+ let termString;
65
+
66
+ if (false) {
67
+ ///
68
+ } else if (primitive !== null) {
69
+ const primitiveString = primitive.toString();
70
+
71
+ termString = primitiveString; ///
72
+ } else {
73
+ properties.forEach((property) => {
74
+ if (property !== null) {
75
+ const propertyString = property.getString();
76
+
77
+ termString = propertyString; ///
78
+ }
79
+ });
80
+ }
81
+
82
+ return termString;
83
+ }
84
+
85
+ export function variableAssignmentStringFromTypeAndVariable(type, variable) {
86
+ const variableString = variable.getString(),
59
87
  variableAssignmentString = `${type} ${variableString} = ... ;`;
60
88
 
61
89
  return variableAssignmentString;