From 43736abbdba980c2d3b2a9156712d4b3bd4fe638 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anian=20B=C3=BChler?= <anian.buehler@reutlingen-university.de> Date: Wed, 17 Jul 2024 16:34:59 +0200 Subject: [PATCH] added strcmp-block --- .../block/logic/EqualStringBlock.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/main/java/com/ardublock/translator/block/logic/EqualStringBlock.java diff --git a/src/main/java/com/ardublock/translator/block/logic/EqualStringBlock.java b/src/main/java/com/ardublock/translator/block/logic/EqualStringBlock.java new file mode 100644 index 0000000..92a90b1 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/logic/EqualStringBlock.java @@ -0,0 +1,30 @@ +package com.ardublock.translator.block.logic; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.TranslatorBlock; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +import tec.letsgoing.ardublock.simulator.simcode.SimCode; +import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt; +import tec.letsgoing.ardublock.simulator.simcode.logic.CodeIntEqual; + +public class EqualStringBlock extends TranslatorBlock +{ + public EqualStringBlock(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException, SubroutineNotDeclaredException + { + TranslatorBlock tb_str1 = this.getRequiredTranslatorBlockAtSocket(0); + TranslatorBlock tb_str2 = this.getRequiredTranslatorBlockAtSocket(1); + + String str1 = tb_str1.toCode().replaceAll("\\s*_.new\\b\\s*", ""); + String str2 = tb_str2.toCode().replaceAll("\\s*_.new\\b\\s*", ""); + + return "strcmp("+str1+", "+str2+") == 0"; + } +} -- GitLab