diff --git a/.project b/.project index 11e71b2..10e69ad 100644 --- a/.project +++ b/.project @@ -30,4 +30,15 @@ org.eclipse.wst.common.modulecore.ModuleCoreNature org.eclipse.jem.workbench.JavaEMFNature + + + 1681401982016 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/build.number b/build.number index 19feb37..6a1728e 100644 --- a/build.number +++ b/build.number @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Wed Mar 15 13:59:34 CET 2023 -build.number=3 +#Thu Apr 13 18:03:49 CEST 2023 +build.number=4 diff --git a/proparse.assemblies.zip b/proparse.assemblies.zip index 7165fa1..663363c 100644 Binary files a/proparse.assemblies.zip and b/proparse.assemblies.zip differ diff --git a/proparse.jar b/proparse.jar index 909056a..6c0ad77 100644 Binary files a/proparse.jar and b/proparse.jar differ diff --git a/proparse.java.zip b/proparse.java.zip index 8eae6e2..c79902f 100644 Binary files a/proparse.java.zip and b/proparse.java.zip differ diff --git a/proparse.net.dll b/proparse.net.dll index 614321d..7c2c88d 100644 Binary files a/proparse.net.dll and b/proparse.net.dll differ diff --git a/src/com/joanju/proparse/Postlexer.java b/src/com/joanju/proparse/Postlexer.java index 48f913a..a70959f 100644 --- a/src/com/joanju/proparse/Postlexer.java +++ b/src/com/joanju/proparse/Postlexer.java @@ -94,6 +94,8 @@ ProToken defined() throws IOException { throwMessage("Bad DEFINED function in &IF preprocessor condition"); ProToken argToken = lexer.getAmpIfDefArg(); getNextToken(); + if (currToken.getType() == MAKROREFERENCE) + getNextToken(); if (currToken.getType() != RIGHTPAREN) throwMessage("Bad DEFINED function in &IF preprocessor condition"); return new ProToken(filenameList, NUMBER, prepro.defined(argToken.getText().trim().toLowerCase())); diff --git a/src/test/SCL4054/TestParseIfDefined.java b/src/test/SCL4054/TestParseIfDefined.java new file mode 100644 index 0000000..9d34cf5 --- /dev/null +++ b/src/test/SCL4054/TestParseIfDefined.java @@ -0,0 +1,33 @@ +package test.SCL4054; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; + +import junit.framework.Assert; + +import org.prorefactor.refactor.RefactorException; +import org.prorefactor.treeparser.ParseUnit; + +import test.ProparseTestCase; + +public class TestParseIfDefined extends ProparseTestCase { + + public void setUp () throws Exception { + super.setUp(); + } + + public void test () throws RefactorException, IOException { + File original; + ParseUnit pu; + byte[] originalText; + byte[] nodeText; + + original = new File ("src/test/SCL4054/testCode.p"); + + pu = new ParseUnit (original, "ISO8859-1"); + Assert.assertNotNull(pu); + pu.treeParser01(); + Assert.assertNotNull(pu.getTopNode()); + } +} diff --git a/src/test/SCL4054/testCode.p b/src/test/SCL4054/testCode.p new file mode 100644 index 0000000..8b205c5 --- /dev/null +++ b/src/test/SCL4054/testCode.p @@ -0,0 +1,21 @@ +/* *************************** Definitions ************************** */ + +BLOCK-LEVEL ON ERROR UNDO, THROW. + +&SCOPED-DEFINE Test 42 + +&SCOPED-DEFINE Test-42 + +&IF DEFINED (Test-42) NE 0 &THEN +MESSAGE "bam" + VIEW-AS ALERT-BOX. +&ENDIF + + +&IF DEFINED (Test-{&Test}) NE 0 &THEN +MESSAGE "yeah" + VIEW-AS ALERT-BOX. +&ENDIF + +MESSAGE "boah" + VIEW-AS ALERT-BOX. \ No newline at end of file