diff --git a/Parser/test-data/continued_lines/code.f b/Parser/test-data/continued_lines/code.f deleted file mode 100644 index e95047cd2c8cdd17c585c77b90fd07d3a27a91c7..0000000000000000000000000000000000000000 --- a/Parser/test-data/continued_lines/code.f +++ /dev/null @@ -1,7 +0,0 @@ - - do concurrent(k = 1:num_ele, i = 0:po) - T(i,k,1) = 4 * THIRD * T(i,k,0) - THIRD * T(i,k,-1) & - + THIRD * 2 * dt * global_mass_inv(i,k) * f(i,k) - end do - -end diff --git a/Parser/test-data/continued_lines/comments.f b/Parser/test-data/continued_lines/comments.f deleted file mode 100644 index 6d01f93fbf9ab29a31b45197dee2afc61b6973f1..0000000000000000000000000000000000000000 --- a/Parser/test-data/continued_lines/comments.f +++ /dev/null @@ -1,35 +0,0 @@ -! xxxxx -! xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx -! xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxxx -! xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx - -! xxxxx & -! xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx & -! xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxxx & -! xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx & -! bla - -! xxxxx& -! xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx& -! xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxxx& -! xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx& -! bla - -! xxxxx & -! xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx & -! xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxxx & -! xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx & -x = 1 - -!--------------------------------------------------------------------------------- -!> \brief Adds the left- and rightmost elements in an array to those on the & -!> nodes in the corresponding direction. -!> \author Immo Huismann -!> -!> \details -!> The spectral element method requires the assembly of the system, resulting in -!> adding the values on the left and right side of an element boundary. -!> As this program uses MPI for communication, the values at the ends of each -!> nodes domain have to be communicated. This is done in this routine. - -end diff --git a/Parser/test-data/continued_lines/pragma.f b/Parser/test-data/continued_lines/pragma.f new file mode 100644 index 0000000000000000000000000000000000000000..d0a02421f4a5d8277e0933f7d9589fa882e813cd --- /dev/null +++ b/Parser/test-data/continued_lines/pragma.f @@ -0,0 +1,22 @@ +! simple pragma + +!$omp bla + +! simple continued pragma + +!$omp do & +more + +! correct continued pragma + +!$omp do& +!$omp more + +!$omp do& +!$omp&more + +!$omp do& +!$omp&really& +!$omp an& +!$omp awful& +!$omp&lot \ No newline at end of file diff --git a/Parser/test-data/continued_lines/pragmas.f b/Parser/test-data/continued_lines/pragmas.f deleted file mode 100644 index c0d445376c3944d5268e664a616ba201cbd93009..0000000000000000000000000000000000000000 --- a/Parser/test-data/continued_lines/pragmas.f +++ /dev/null @@ -1,24 +0,0 @@ -!$omp parallel default(none) & -!$omp& shared(T,r,f,x,global_mass_inv) & -!$omp& firstprivate(mass_mat_diag,stiffness_mat) & -!$omp& firstprivate(alpha,beta,lambda) & -!$omp& firstprivate(po,num_ele,he,nt,dt,dt_out) & -!$omp& firstprivate(my_rank,num_procs,communicator,RNP_MPI) & -!$omp& firstprivate(num_ele_total,left_process,right_process) & -!$omp& private(k,i,j,sum) & -!$omp& shared(time,time_out) - -!$omp parallel default(none) & -!$omp& shared(T,r,f,x,global_mass_inv) & -!$omp& firstprivate(mass_mat_diag,stiffness_mat) & -!$omp& firstprivate(alpha,beta,lambda) & -!$omp& firstprivate(po,num_ele,he,nt,dt,dt_out) & -!$omp& firstprivate(my_rank,num_procs,communicator,RNP_MPI) & -!$omp& firstprivate(num_ele_total,left_process,right_process) & -!$omp& private(k,i,j,sum) & -!$omp& shared(time,time_out) - -!$omp end parallel -!$omp end parallel - -end diff --git a/Parser/test-data/continued_lines/simple.f b/Parser/test-data/continued_lines/simple.f new file mode 100644 index 0000000000000000000000000000000000000000..ddfd250f51ab0a09672b144f50d85db380103f4f --- /dev/null +++ b/Parser/test-data/continued_lines/simple.f @@ -0,0 +1,42 @@ +! normal continued line + +a = b & ++ c + +var& +iable = "value" + +! continued line with comment + +a = b & ! some comment ++ c + +! continued line with blank line inbetween + +a = b & + ++ c + +a = b & + + ++ c + +! continued line with comment line inbetween + +a = b & +! some comment ++ c + +a = b & +! some comment +! more comment ++ c + +a = b & +! comment, then space line + +! more comment ++ c + +end diff --git a/Parser/test-data/continued_lines/strings.f b/Parser/test-data/continued_lines/strings.f new file mode 100644 index 0000000000000000000000000000000000000000..cd582a851350c0490caf1b9a96716ce1ecb21a63 --- /dev/null +++ b/Parser/test-data/continued_lines/strings.f @@ -0,0 +1,21 @@ +a = "my& +& string" + +a = 'my& +& string' + +a = 'my& +& string" + +! false positives +a = 'my'& +& string + +a = "my"& +& string + +a = "my'& +& string + +a = 'my"& +& string \ No newline at end of file diff --git a/Parser/test/org/tud/forty/test/ContinuedLinesTest.java b/Parser/test/org/tud/forty/test/ContinuedLinesTest.java index 2c57d442ef2431e7d26699ed92bce831db84a4d4..a4b9e493d86fe308d96bab1e68e88652433b39f3 100644 --- a/Parser/test/org/tud/forty/test/ContinuedLinesTest.java +++ b/Parser/test/org/tud/forty/test/ContinuedLinesTest.java @@ -1,21 +1,19 @@ package org.tud.forty.test; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; -import org.tud.forty.ast.Root; - import java.io.File; import java.util.Iterator; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; public class ContinuedLinesTest extends TestBase { - @DataProvider(name = "continued_lines") - public static Iterator<Object[]> fortranContinuedLinesProvider() { - return ruleProvider("test-data/continued_lines"); - } + @DataProvider(name = "continued_lines") + public static Iterator<Object[]> fortranContinuedLinesProvider() { + return ruleProvider("test-data/continued_lines"); + } - @Test(dataProvider = "continued_lines", groups = {"parser"}) - public void testContinuedLinesParser(File f) throws Exception { - testParse(f, false, false, false, false, Root.class); - } + @Test(dataProvider = "continued_lines", groups = {"parser"}) + public void testContinuedLinesSanitize(File f) throws Exception { + testSanitize(f); + } }