Skip to content

Commit 94599e4

Browse files
Merge pull request #87 from MastersOfDesaster/fix/andor
implement AND and OHR
2 parents 4102dc6 + 0ae740c commit 94599e4

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

compiler/src/main/java/vong/piler/her/generator/Generator.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,10 @@ private TreeNode pEnd(TreeNode node, String name, OperationEnum operation, List<
312312
case EQL:
313313
PreDefinedFunction.generateComparator(operation, values, writer);
314314
break;
315+
case OHR:
316+
case AND:
317+
PreDefinedFunction.generateLogicOperator(operation, values, writer);
318+
break;
315319
default:
316320
throw new GenerationsFails(node, tokenId);
317321
}

compiler/src/main/java/vong/piler/her/generator/PreDefinedFunction.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,15 @@ static void generateComparator(OperationEnum comparatorOperation, List<ValueMode
3333
}
3434
}
3535

36+
static void generateLogicOperator(OperationEnum logicOperation, List<ValueModel> values, ByteCodeWriter writer){
37+
writer.addCommandResolveAdresses(values.get(0).getOperation(), values.get(0).getValue());
38+
values.remove(0);
39+
values.forEach(value -> {
40+
writer.addCommandResolveAdresses(value.getOperation(), value.getValue());
41+
writer.addCommand(logicOperation);
42+
});
43+
}
44+
3645
static void generatePrint(OperationEnum operation, List<ValueModel> values, ByteCodeWriter writer) {
3746
values.forEach(value -> {
3847
writer.addCommandResolveAdresses(value.getOperation(), value.getValue());

0 commit comments

Comments
 (0)