This commit was manufactured by cvs2svn to create tag 'v200910152001'.
Sprout from master 2009-10-14 16:40:32 UTC Jeffrey Overbey <jeffreyoverbey@acm.org> 'Added AST release'
Delete:
org.eclipse.photran-dev-docs/.cdtproject
org.eclipse.photran-dev-docs/.cproject
org.eclipse.photran-dev-docs/.externalToolBuilders/net.sourceforge.texlipse.builder.TexlipseBuilder (1).launch
org.eclipse.photran-dev-docs/.externalToolBuilders/net.sourceforge.texlipse.builder.TexlipseBuilder.launch
org.eclipse.photran-dev-docs/.externalToolBuilders/org.eclipse.cdt.make.core.makeBuilder.launch
org.eclipse.photran-dev-docs/.project
org.eclipse.photran-dev-docs/.settings/org.eclipse.cdt.core.prefs
org.eclipse.photran-dev-docs/README.txt
org.eclipse.photran-dev-docs/about.html
org.eclipse.photran-dev-docs/debugger/notes-from-feanil-200705.txt
org.eclipse.photran-dev-docs/debugger/senior-project-final-report-200705.pdf
org.eclipse.photran-dev-docs/dev-guide/.cvsignore
org.eclipse.photran-dev-docs/dev-guide/app-cvs.ltx-inc
org.eclipse.photran-dev-docs/dev-guide/app-deploy.ltx-inc
org.eclipse.photran-dev-docs/dev-guide/app-error-parsers.ltx-inc
org.eclipse.photran-dev-docs/dev-guide/app-history.ltx-inc
org.eclipse.photran-dev-docs/dev-guide/app-obfuscate-fortran.ltx-inc
org.eclipse.photran-dev-docs/dev-guide/app-rename-tests.ltx-inc
org.eclipse.photran-dev-docs/dev-guide/app-uiuc.ltx-inc
org.eclipse.photran-dev-docs/dev-guide/authors.ltx
org.eclipse.photran-dev-docs/dev-guide/build.sh
org.eclipse.photran-dev-docs/dev-guide/build.xml
org.eclipse.photran-dev-docs/dev-guide/cdt.ltx-inc
org.eclipse.photran-dev-docs/dev-guide/cvs-instructions.ltx
org.eclipse.photran-dev-docs/dev-guide/cvs-instructions.pdf
org.eclipse.photran-dev-docs/dev-guide/dev-guide.ltx
org.eclipse.photran-dev-docs/dev-guide/editor.ltx-inc
org.eclipse.photran-dev-docs/dev-guide/find-pdflatex.sh
org.eclipse.photran-dev-docs/dev-guide/images/diagrams/editor_hierarchy.graffle
org.eclipse.photran-dev-docs/dev-guide/images/diagrams/parser_chain.graffle
org.eclipse.photran-dev-docs/dev-guide/images/editor_hierarchy.png
org.eclipse.photran-dev-docs/dev-guide/images/parser_chain.png
org.eclipse.photran-dev-docs/dev-guide/images/parsetree1.png
org.eclipse.photran-dev-docs/dev-guide/images/simple_fortran_AST.png
org.eclipse.photran-dev-docs/dev-guide/intro.ltx-inc
org.eclipse.photran-dev-docs/dev-guide/parsing.ltx-inc
org.eclipse.photran-dev-docs/dev-guide/plugins.ltx-inc
org.eclipse.photran-dev-docs/dev-guide/refactoring.ltx-inc
org.eclipse.photran-dev-docs/eclipse-config/photran-code-formatter-settings.xml
org.eclipse.photran-dev-docs/eclipse-config/photran-ibm-codetemplates.xml
org.eclipse.photran-dev-docs/eclipse-config/photran-uiuc-codetemplates.xml
org.eclipse.photran-dev-docs/fortran-nature/Bugzilla-info.txt
org.eclipse.photran-dev-docs/fortran-nature/README.txt
org.eclipse.photran-dev-docs/fortran-nature/screenshot.gif
org.eclipse.photran-dev-docs/language-coverage/Fortran 95 Feature Coverage.xls
org.eclipse.photran-dev-docs/misc-notes/cdt-outline-view-icons.txt
org.eclipse.photran-dev-docs/misc-notes/cs427fa08-mp5-summary.pdf
org.eclipse.photran-dev-docs/misc-notes/fixed-form-note-from-dirk.txt
org.eclipse.photran-dev-docs/misc-notes/links.txt
org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/deployment.txt
org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-03-cdt.tex
org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-06-parser.tex
org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-07-analysis.tex
org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-08-symtbls.tex
org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-09-refac-suppt.tex
org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-10-refactoring.tex
org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-a2-xyz.tex
org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-a3-cdt-ext-pt.tex
org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-a4-misc-notes.tex
org.eclipse.photran-dev-docs/patches/patch-20051101.txt
org.eclipse.photran-samples/.cdtproject
org.eclipse.photran-samples/.cproject
org.eclipse.photran-samples/.project
org.eclipse.photran-samples/.settings/org.eclipse.cdt.core.prefs
org.eclipse.photran-samples/.settings/scoped_pref_store.prefs
org.eclipse.photran-samples/Makefile
org.eclipse.photran-samples/liebmann-viz.gif
org.eclipse.photran-samples/liebmann-viz.sh
org.eclipse.photran-samples/src-common/.cvsignore
org.eclipse.photran-samples/src-common/change_c.f90
org.eclipse.photran-samples/src-common/main.f90
org.eclipse.photran-samples/src-cray-pointers/.cvsignore
org.eclipse.photran-samples/src-cray-pointers/cray-pointers.f90
org.eclipse.photran-samples/src-fixed-form-1/.cvsignore
org.eclipse.photran-samples/src-fixed-form-1/hello.f
org.eclipse.photran-samples/src-fixed-form-2/.cvsignore
org.eclipse.photran-samples/src-fixed-form-2/Makefile
org.eclipse.photran-samples/src-fixed-form-2/sample.f
org.eclipse.photran-samples/src-fortran-and-c/Makefile
org.eclipse.photran-samples/src-fortran-and-c/c.c
org.eclipse.photran-samples/src-fortran-and-c/fortran.f90
org.eclipse.photran-samples/src-fortran2003/.cvsignore
org.eclipse.photran-samples/src-fortran2003/01-class.f03
org.eclipse.photran-samples/src-fortran2003/02-inheritance.f03
org.eclipse.photran-samples/src-fortran2003/03-destructor.f03
org.eclipse.photran-samples/src-fortran2003/Makefile
org.eclipse.photran-samples/src-fortran2003/char-fn-test.f03
org.eclipse.photran-samples/src-fortran2003/nag-bug.f03
org.eclipse.photran-samples/src-fortran2003/params.f03
org.eclipse.photran-samples/src-fortran2003/stream-io.f03
org.eclipse.photran-samples/src-fortran2003/string.f03
org.eclipse.photran-samples/src-fortran2003/xlf-bug.f03
org.eclipse.photran-samples/src-fortran2003/xlf-bug2.f03
org.eclipse.photran-samples/src-fortran2003/xlf-crash.f03
org.eclipse.photran-samples/src-gaussian-elimination/.cvsignore
org.eclipse.photran-samples/src-gaussian-elimination/gauselim.f90
org.eclipse.photran-samples/src-implicits-1/.cvsignore
org.eclipse.photran-samples/src-implicits-1/hello.f90
org.eclipse.photran-samples/src-implicits-2/.cvsignore
org.eclipse.photran-samples/src-implicits-2/fortran.f90
org.eclipse.photran-samples/src-implicits-3/.cvsignore
org.eclipse.photran-samples/src-implicits-3/crazyimplicits.f90
org.eclipse.photran-samples/src-includes/.cvsignore
org.eclipse.photran-samples/src-includes/inc.h
org.eclipse.photran-samples/src-includes/innocuous.f90
org.eclipse.photran-samples/src-includes/main.doesnotcompile
org.eclipse.photran-samples/src-interfaces/.cvsignore
org.eclipse.photran-samples/src-interfaces/gfortran_compile_error.txt
org.eclipse.photran-samples/src-interfaces/interfaces.f90
org.eclipse.photran-samples/src-language-features/.cvsignore
org.eclipse.photran-samples/src-language-features/almost-exhaustive.f90
org.eclipse.photran-samples/src-liebmann-1-eoshift/.cvsignore
org.eclipse.photran-samples/src-liebmann-1-eoshift/liebmann.f90
org.eclipse.photran-samples/src-liebmann-2-arrays/.cvsignore
org.eclipse.photran-samples/src-liebmann-2-arrays/liebmann.f90
org.eclipse.photran-samples/src-liebmann-3-loops/.cvsignore
org.eclipse.photran-samples/src-liebmann-3-loops/liebmann.f90
org.eclipse.photran-samples/src-line-fitting/.cvsignore
org.eclipse.photran-samples/src-line-fitting/bstfit.f90
org.eclipse.photran-samples/src-modules/.cvsignore
org.eclipse.photran-samples/src-modules/module1.f90
org.eclipse.photran-samples/src-modules/module2.f90
org.eclipse.photran-samples/src-modules/zmain.f90
org.eclipse.photran-samples/src-scoping/.cvsignore
org.eclipse.photran-samples/src-scoping/scoping.f90
org.eclipse.photran.core.vpg.tests.failing/.classpath
org.eclipse.photran.core.vpg.tests.failing/.project
org.eclipse.photran.core.vpg.tests.failing/.settings/org.eclipse.jdt.core.prefs
org.eclipse.photran.core.vpg.tests.failing/.settings/org.eclipse.jdt.ui.prefs
org.eclipse.photran.core.vpg.tests.failing/META-INF/MANIFEST.MF
org.eclipse.photran.core.vpg.tests.failing/build.properties
org.eclipse.photran.core.vpg.tests.failing/intro-implicit-test-code/hello.f90
org.eclipse.photran.core.vpg.tests.failing/intro-implicit-test-code/hello.f90.result
org.eclipse.photran.core.vpg.tests.failing/intro-implicit-test-code/hello2.f90
org.eclipse.photran.core.vpg.tests.failing/intro-implicit-test-code/hello2.f90.result
org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/00-README.txt
org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialFromTheWWW.java
org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialLAPACK.java
org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialNagleFortran2003.java
org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialPOP.java
org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialWaltBrainerdFortran2003.java
org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialWaltBrainerdTestSuiteFixed.java
org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialWaltBrainerdTestSuiteFree.java
org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/f_source_editing/TestReindent.java
org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/refactoring/tests/introimplicitnone/IntroImplicitTestSuite.java
org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/search/tests/VPGSearchTestSuite.java
org.eclipse.photran.core.vpg.tests/.classpath
org.eclipse.photran.core.vpg.tests/.project
org.eclipse.photran.core.vpg.tests/.settings/org.eclipse.jdt.core.prefs
org.eclipse.photran.core.vpg.tests/.settings/org.eclipse.jdt.ui.prefs
org.eclipse.photran.core.vpg.tests/META-INF/MANIFEST.MF
org.eclipse.photran.core.vpg.tests/Makefile
org.eclipse.photran.core.vpg.tests/NOTE
org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/module2.f90
org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/module3.f90
org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/module4.f90
org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/module5.f90
org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test1.f90
org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test1.f90.result
org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test2.f90
org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test2.f90.result
org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test3.f90
org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test6.f90
org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test7.f90
org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test8.f90
org.eclipse.photran.core.vpg.tests/build.properties
org.eclipse.photran.core.vpg.tests/check-can-add-test-code/external.f90
org.eclipse.photran.core.vpg.tests/check-can-add-test-code/main.f90
org.eclipse.photran.core.vpg.tests/check-can-add-test-code/module.f90
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/module1.f90
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/module1.f90.result
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01a-basic-integer.f90
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01a-basic-integer.f90.result
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01b-basic-real.f90
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01b-basic-real.f90.result
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01c-basic-dt.f90
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01c-basic-dt.f90.result
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-02-contains.f90
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-02-contains.f90.result
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-03-expr.f90
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-03-expr.f90.result
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-04-nosetter-parameter.f90
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-05a-fail-conflict.f90
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06a-fail-array.f90
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06b-fail-pointer.f90
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06c-fail-allocatable1.f90
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06d-fail-allocatable2.f90
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06e-fail-target.f90
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-simple01.f90
org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-simple01.f90.result
org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test01-simple.f90
org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test01-simple.f90.result
org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test02-locals.f90
org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test02-locals.f90.result
org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test03-locals2.f90
org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test03-locals2.f90.result
org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test04-in-loop.f90
org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test04-in-loop.f90.result
org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test05-parameter.f90
org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test05-parameter.f90.result
org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test06-parameter.f90
org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test06-parameter.f90.result
org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test07-attribs.f90
org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test07-attribs.f90.result
org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-single-loop.f90
org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-single-loop.f90.result
org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-triple-loop.f90
org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-triple-loop.f90.result
org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-triple-loop2.f90
org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-triple-loop2.f90.result
org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test01-simple.f90
org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test01-simple.f90.result
org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test02-simple.f90
org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test02-simple.f90.result
org.eclipse.photran.core.vpg.tests/interface-test-code/definition1.f90
org.eclipse.photran.core.vpg.tests/interface-test-code/definition2.f90
org.eclipse.photran.core.vpg.tests/interface-test-code/interface1.f90
org.eclipse.photran.core.vpg.tests/interface-test-code/interface2.f90
org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/bigexpression.f90
org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/bigexpression.f90.result
org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/bug206386.f90
org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/bug206386.f90.result
org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/crazyimplicits.f90
org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/crazyimplicits.f90.result
org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/fortran.f90
org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/fortran.f90.result
org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/implicit-subprog.f90
org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/implicit-subprog.f90.result
org.eclipse.photran.core.vpg.tests/keyword-case-test-code/01-simple.f90
org.eclipse.photran.core.vpg.tests/keyword-case-test-code/01-simple.f90.result
org.eclipse.photran.core.vpg.tests/keyword-case-test-code/02-end-after.f90
org.eclipse.photran.core.vpg.tests/keyword-case-test-code/02-end-after.f90.result
org.eclipse.photran.core.vpg.tests/keyword-case-test-code/03-blank-after.f90
org.eclipse.photran.core.vpg.tests/keyword-case-test-code/03-blank-after.f90.result
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common1.f90
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common1.f90.result
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common2.f90
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common2.f90.result
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common3.f90
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common3.f90.result
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common4.f90
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common4.f90.result
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/justCommons1.f90
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/justCommons1.f90.result
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/justCommons2.f90
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/justCommons2.f90.result
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/namesProv1.f90
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/namesProv1.f90.result
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/namesProv2.f90
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/namesProv2.f90.result
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/sameName1.f90
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/sameName1.f90.result
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/sameName2.f90
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/sameName2.f90.result
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/short1.f90
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/short1.f90.result
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/short2.f90
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/short2.f90.result
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/typesDiffer1.f90
org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/typesDiffer2.f90
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/main.f90
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/priv1.f90
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/priv1.f90.result
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/priv2.f90
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/priv2.f90.result
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test12.f90
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test12.f90.result
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test13.f90
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test3.f90
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test3.f90.result
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test4.f90
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test4.f90.result
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test5.f90
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test5.f90.result
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test6.f90
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test6.f90.result
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test7.f90
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test7.f90.result
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test7_1.f90
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test7_1.f90.result
org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/testFile1.f90
org.eclipse.photran.core.vpg.tests/min-only-list-test-code/module.f90
org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test1.f90
org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test1.f90.result
org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test2.f90
org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test2.f90.result
org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test3.f90
org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test3.f90.result
org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test4_5.f90
org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test6.f90
org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test7.f90
org.eclipse.photran.core.vpg.tests/move-saved-to-common-block-test-code/test1.f90
org.eclipse.photran.core.vpg.tests/move-saved-to-common-block-test-code/test1.f90.result
org.eclipse.photran.core.vpg.tests/move-saved-to-common-block-test-code/test2.f90
org.eclipse.photran.core.vpg.tests/move-saved-to-common-block-test-code/test2.f90.result
org.eclipse.photran.core.vpg.tests/parser-test-code/.cvsignore
org.eclipse.photran.core.vpg.tests/parser-test-code/fortran2003_tests/fortran2003-syntax.f03
org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/extractvariable/ExtractVariable.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/extractvariable/ExtractVariableAfter.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/MainProgramRefactoringAfter.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/MainProgramRefactoringBefore.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/Subroutine2RefactoringsAfter.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/Subroutine2RefactoringsBefore.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineRefactoringAfter.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineRefactoringBefore.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineThatHasAnImplicitStmt.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineWithDecalaredVarsRefactoringBefore.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineWithDeclaredVarsRefactoringAfter.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test1aRefactored.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test1abOriginal.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test1bRefactored.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test2Original.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test3Original.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test4Original.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test4Refactored.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/AssignResult.F90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/BlockData.F90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/ConstSubstring.F90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/DblPrecDim.F90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/FormatTest.F90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/Function.F90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/ImplicitTest.F90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/IntentTest.F90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/LineContinuationTest.F90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/OperatorStarTest.F90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/ParenSlash.F90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug118954-todo.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug118955.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug118965.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug126383.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug126546.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug126547.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug126548.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug138221.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug167734.f
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug193031.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug193196.f
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug195801.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug212606-todo.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug212606.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug276186.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/formatbugs.f90
org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/valref.f90
org.eclipse.photran.core.vpg.tests/reindenter-test-code/01-simple.f90
org.eclipse.photran.core.vpg.tests/reindenter-test-code/01-simple.f90.result
org.eclipse.photran.core.vpg.tests/reindenter-test-code/02-end-after.f90
org.eclipse.photran.core.vpg.tests/reindenter-test-code/02-end-after.f90.result
org.eclipse.photran.core.vpg.tests/reindenter-test-code/03-blank-after.f90
org.eclipse.photran.core.vpg.tests/reindenter-test-code/03-blank-after.f90.result
org.eclipse.photran.core.vpg.tests/reindenter-test-code/04-guess-indent.f90
org.eclipse.photran.core.vpg.tests/reindenter-test-code/04-guess-indent.f90.result
org.eclipse.photran.core.vpg.tests/reindenter-test-code/05-eachline-test.f90
org.eclipse.photran.core.vpg.tests/reindenter-test-code/05-eachline-test.f90.result
org.eclipse.photran.core.vpg.tests/rename-test-code/.cvsignore
org.eclipse.photran.core.vpg.tests/rename-test-code/Makefile
org.eclipse.photran.core.vpg.tests/rename-test-code/bug278103-mod.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/bug278103-prog.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/bug278103-subs.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/bug278106-visibility.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/bug278320-mod.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/bug278320-prog.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/bug278324.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/rename-extsub1-a.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/rename-extsub1-b.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/rename-fn-result.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/rename-overloads.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/rename1.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/rename2.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/rename3.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/rename3a.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/rename3b.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/rename3c.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/rename4.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/rename4a.fh
org.eclipse.photran.core.vpg.tests/rename-test-code/rename4b.fh
org.eclipse.photran.core.vpg.tests/rename-test-code/rename5.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/rename6.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/rename7.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/rename8.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/rename9.f90
org.eclipse.photran.core.vpg.tests/rename-test-code/rename9a.f90
org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-1-initial.f90
org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-2-proggie-shorter.f90
org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-3-proggie-longer.f90
org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-4-q-cut.f90
org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-5-q-pasted.f90
org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-6-q-pasted-at-bottom.f90
org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-7-q-pasted-formatted.f90
org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-8-q-pasted-at-bottom-formatted.f90
org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-9-t-above-q.f90
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/ArrayReferenceTest.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/BaseTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/DependencesTest.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/GCDTestTest.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/TestSeparatedListRemoval.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/AbstractParserTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/AbstractParserTestSuite.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/AbstractSourceEditorTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/FailingParserTestSuite.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/LoopReplacerSRTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/LoopReplacerSRTestSuite.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/MultiTestSuite.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/ParserTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/ParserTestSuite.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/SourceReproductionTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/SourceReproductionTestSuite.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/addonlytousestmt/AddOnlyToUseTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/addonlytousestmt/AddOnlyToUseTestSuite.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/f_source_editing/TestChangeText.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/f_source_editing/TestRemove.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/g_type_check/TypeCheckerTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/h_interface_links/InterfaceLinkTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/i_list_all/ListAllModulesTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/makeprivatepublic/MakePrivateEntityPublicTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/makeprivatepublic/MakePrivateEntityPublicTestSuite.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/minonlylist/MinOnlyListTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/minonlylist/MinOnlyListTestSuite.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/HugeFile.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseFortran2003TestFiles.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectCollections.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialArjanVanDijkAtmos.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialAsteroids.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialFMLIB.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialFromTheWWW.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialIBEAMCppMod.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialLAPACK.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialNagleFortran2003.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialPOP.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialWRF.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialWaltBrainerdFortran2003.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialWaltBrainerdTestSuiteFixed.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialWaltBrainerdTestSuiteFree.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectString.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseRefactoringTestFiles.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseRegressionTests.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseSamples.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/serialization/TestVPGSerializer.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/x_cpreprocessor/CPreprocessorTests.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/Activator.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/BaseTestFramework.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/RefactoringTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/commonblockvarnames/CommonVarNamesTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/commonblockvarnames/CommonVarNamesTestSuite.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/encapsulatevariable/EncapsulateVariableFailTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/encapsulatevariable/EncapsulateVariableTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/encapsulatevariable/EncapsulateVariableTestSuite.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/extractprocedure/ExtractProcTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/extractprocedure/ExtractProcTestSuite.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/infrastructure/CheckCanAddDeclTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/infrastructure/ReindenterTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/infrastructure/ReindenterTestSuite.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/interchangeloops/InterchangeLoopsTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/interchangeloops/InterchangeLoopsTestSuite.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/introimplicitnone/IntroImplicitTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/introimplicitnone/IntroImplicitTestSuite.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/keyword/KeywordCaseTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/keyword/KeywordCaseTestSuite.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/movesavedtocommonblock/MoveSavedToCommonBlockTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/movesavedtocommonblock/MoveSavedToCommonBlockTestSuite.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename1.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename2.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename3.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename4.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename5.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename6.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename7.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename8.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename9.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameBug278103.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameBug278106_Visibility.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameBug278320.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameBug278324.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameExtSub1.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameFnResult.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameOverloads.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameTestSuite.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/search/tests/ManualSearchPageTests.txt
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/search/tests/VPGSearchTestCase.java
org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/search/tests/VPGSearchTestSuite.java
org.eclipse.photran.core.vpg.tests/vpg-list-test-code/module1.f90
org.eclipse.photran.core.vpg.tests/vpg-list-test-code/module2-module3.f90
org.eclipse.photran.core.vpg.tests/vpg-list-test-code/module4.f90
org.eclipse.photran.core.vpg.tests/vpg-list-test-code/use-module1.f90
org.eclipse.photran.core.vpg.tests/vpg-list-test-code/use-module4.f90
org.eclipse.photran.core.vpg.tests/vpg-search-test-code/foo.f90
org.eclipse.photran.core.vpg.tests/vpg-search-test-code/implicitTest.f90
org.eclipse.photran.core.vpg.tests/vpg-search-test-code/moduleInclusion.F90
org.eclipse.photran.core.vpg.tests/vpg-search-test-code/nameScoping.F90
diff --git a/org.eclipse.photran-dev-docs/.cdtproject b/org.eclipse.photran-dev-docs/.cdtproject
deleted file mode 100644
index 1b2ea83..0000000
--- a/org.eclipse.photran-dev-docs/.cdtproject
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse-cdt version="2.0"?>
-
-<cdtproject/>
diff --git a/org.eclipse.photran-dev-docs/.cproject b/org.eclipse.photran-dev-docs/.cproject
deleted file mode 100644
index 5ed875c..0000000
--- a/org.eclipse.photran-dev-docs/.cproject
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?fileVersion 4.0.0?>
-
-<cproject>
-<storageModule moduleId="org.eclipse.cdt.core.settings">
-<cconfiguration id="converted.config.1692608738">
-<storageModule buildSystemId="org.eclipse.cdt.core.defaultConfigDataProvider" id="converted.config.1692608738" moduleId="org.eclipse.cdt.core.settings" name="convertedConfig">
-<externalSettings/>
-<extensions/>
-</storageModule>
-</cconfiguration>
-</storageModule>
-</cproject>
diff --git "a/org.eclipse.photran-dev-docs/.externalToolBuilders/net.sourceforge.texlipse.builder.TexlipseBuilder \0501\051.launch" "b/org.eclipse.photran-dev-docs/.externalToolBuilders/net.sourceforge.texlipse.builder.TexlipseBuilder \0501\051.launch"
deleted file mode 100644
index 82be9fa..0000000
--- "a/org.eclipse.photran-dev-docs/.externalToolBuilders/net.sourceforge.texlipse.builder.TexlipseBuilder \0501\051.launch"
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_BUILDER_ENABLED" value="false"/>
-<mapAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_DISABLED_BUILDER" value="net.sourceforge.texlipse.builder.TexlipseBuilder"/>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
-</launchConfiguration>
diff --git a/org.eclipse.photran-dev-docs/.externalToolBuilders/net.sourceforge.texlipse.builder.TexlipseBuilder.launch b/org.eclipse.photran-dev-docs/.externalToolBuilders/net.sourceforge.texlipse.builder.TexlipseBuilder.launch
deleted file mode 100644
index 82be9fa..0000000
--- a/org.eclipse.photran-dev-docs/.externalToolBuilders/net.sourceforge.texlipse.builder.TexlipseBuilder.launch
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_BUILDER_ENABLED" value="false"/>
-<mapAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_DISABLED_BUILDER" value="net.sourceforge.texlipse.builder.TexlipseBuilder"/>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
-</launchConfiguration>
diff --git a/org.eclipse.photran-dev-docs/.externalToolBuilders/org.eclipse.cdt.make.core.makeBuilder.launch b/org.eclipse.photran-dev-docs/.externalToolBuilders/org.eclipse.cdt.make.core.makeBuilder.launch
deleted file mode 100644
index 76c5283..0000000
--- a/org.eclipse.photran-dev-docs/.externalToolBuilders/org.eclipse.cdt.make.core.makeBuilder.launch
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_BUILDER_ENABLED" value="false"/>
-<mapAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS">
-<mapEntry key="org.eclipse.cdt.make.core.build.arguments" value=""/>
-<mapEntry key="org.eclipse.cdt.core.errorOutputParser" value="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.VCErrorParser;"/>
-<mapEntry key="org.eclipse.cdt.make.core.enableAutoBuild" value="false"/>
-<mapEntry key="org.eclipse.cdt.make.core.environment" value=""/>
-<mapEntry key="org.eclipse.cdt.make.core.enableFullBuild" value="true"/>
-<mapEntry key="org.eclipse.cdt.make.core.build.target.inc" value="all"/>
-<mapEntry key="org.eclipse.cdt.make.core.enabledIncrementalBuild" value="true"/>
-<mapEntry key="org.eclipse.cdt.make.core.build.target.clean" value="clean"/>
-<mapEntry key="org.eclipse.cdt.make.core.build.command" value="make"/>
-<mapEntry key="org.eclipse.cdt.make.core.enableCleanBuild" value="true"/>
-<mapEntry key="org.eclipse.cdt.make.core.append_environment" value="true"/>
-<mapEntry key="org.eclipse.cdt.make.core.build.target.full" value="clean all"/>
-<mapEntry key="org.eclipse.cdt.make.core.useDefaultBuildCmd" value="true"/>
-<mapEntry key="org.eclipse.cdt.make.core.build.target.auto" value="all"/>
-<mapEntry key="org.eclipse.cdt.make.core.stopOnError" value="false"/>
-</mapAttribute>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_DISABLED_BUILDER" value="org.eclipse.cdt.make.core.makeBuilder"/>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
-</launchConfiguration>
diff --git a/org.eclipse.photran-dev-docs/.project b/org.eclipse.photran-dev-docs/.project
deleted file mode 100644
index 163ef2c..0000000
--- a/org.eclipse.photran-dev-docs/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.photran-dev-docs</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- <dictionary>
- <key>LaunchConfigHandle</key>
- <value><project>/.externalToolBuilders/net.sourceforge.texlipse.builder.TexlipseBuilder (1).launch</value>
- </dictionary>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>net.sourceforge.texlipse.builder.TexlipseNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.photran-dev-docs/.settings/org.eclipse.cdt.core.prefs b/org.eclipse.photran-dev-docs/.settings/org.eclipse.cdt.core.prefs
deleted file mode 100644
index 3016190..0000000
--- a/org.eclipse.photran-dev-docs/.settings/org.eclipse.cdt.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Thu Jul 13 14:30:36 CDT 2006
-eclipse.preferences.version=1
-indexerId=org.eclipse.cdt.core.nullindexer
diff --git a/org.eclipse.photran-dev-docs/README.txt b/org.eclipse.photran-dev-docs/README.txt
deleted file mode 100644
index 03f5589..0000000
--- a/org.eclipse.photran-dev-docs/README.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-The documentation is built using Ant.
-Right-click build.xml and click on Run As > Ant Build.
-
-Contents:
-
-dev-guide
- Contains the Photran Developer's Guide. The CVS
- instructions in Appendix A are also made into a
- separate PDF.
-
- If you edit this, make sure your name is added
- to authors.tex!
-
- Run Ant on build.xml to build the documentation
- using pdflateex.
-
-misc-notes
- Various notes-to-self that aren't import enough to
- be in the developer's guide.
-
---Jeff Overbey 8/19/05, updated 8/29/08
\ No newline at end of file
diff --git a/org.eclipse.photran-dev-docs/about.html b/org.eclipse.photran-dev-docs/about.html
deleted file mode 100644
index 9c7ba0a..0000000
--- a/org.eclipse.photran-dev-docs/about.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"><head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>About</title></head>
-
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>May 2, 2006</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, "Program" will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party ("Redistributor") and different terms and conditions may
-apply to your use of any object code in the Content. Check the Redistributor's license that was
-provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body></html>
\ No newline at end of file
diff --git a/org.eclipse.photran-dev-docs/debugger/notes-from-feanil-200705.txt b/org.eclipse.photran-dev-docs/debugger/notes-from-feanil-200705.txt
deleted file mode 100644
index 8abf0cc..0000000
--- a/org.eclipse.photran-dev-docs/debugger/notes-from-feanil-200705.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-* All modifications have "SP06" in a comment
-* Clicking on Run As/Debug As > Local Fortran Application sometimes does not work.
- Workaround: Use the "Run.../Debug..." dialog.
-* Remember there are TWO "Set Breakpoint" commands now (right-click
- the editor's ruler to see them): one for C/C++ and one for Fortran
diff --git a/org.eclipse.photran-dev-docs/debugger/senior-project-final-report-200705.pdf b/org.eclipse.photran-dev-docs/debugger/senior-project-final-report-200705.pdf
deleted file mode 100644
index 6ef8205..0000000
--- a/org.eclipse.photran-dev-docs/debugger/senior-project-final-report-200705.pdf
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.photran-dev-docs/dev-guide/.cvsignore b/org.eclipse.photran-dev-docs/dev-guide/.cvsignore
deleted file mode 100644
index c4e2276..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-*.fdb_latexmk
diff --git a/org.eclipse.photran-dev-docs/dev-guide/app-cvs.ltx-inc b/org.eclipse.photran-dev-docs/dev-guide/app-cvs.ltx-inc
deleted file mode 100644
index 924dc9b..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/app-cvs.ltx-inc
+++ /dev/null
@@ -1,89 +0,0 @@
-% Getting the Photran Sources from CVS
-
-\emph{BEFORE YOU BEGIN: Make sure you are running \textbf{Eclipse 3.5} (Galileo)
-and a \textbf{Java 5} or later JVM. We recommend the
-\href{http://www.eclipse.org/downloads/packages/eclipse-rcpplug-developers/ganymeder}{Eclipse for RCP/Plug-in Developers Package}.}
-
-\newcounter{running_counter}
-\textbf{Part~I. Check out the CDT 6.0 sources from CVS}
-
-\begin{enumerate}
- \item In Eclipse, switch to the CVS Repository Exploring perspective.
- \item Right-click the CVS Repositories view; choose New, Repository Location
- \item In the dialog box, enter the following information, then click Finish. \\
- \begin{tabular}{ll}
- Host name: & dev.eclipse.org \\
- Repository path: & /cvsroot/tools \\
- Username: & anonymous \\
- Password: & (no password) \\
- Connection type: & pserver \\
- \end{tabular}
- \item In the CVS Repositories view
- \begin{itemize}
- \item Expand ``:pserver:anonymous@dev.eclipse.org:/cvsroot/tools''
- \item Then expand ``HEAD''
- \end{itemize}
- \item Right-click on ``org.eclipse.cdt''
- \item Select ``Configure Branches and Versions\ldots''
- \item Under ``Browse files for tags'', expand ``all'', then expand
- ``org.eclipse.cdt'', then click on the .project file
- \item Under ``New tags found in the selected files'', click on the Deselect
- All button, then check cdt\_6\_0 in the list above it
- \item Click Add Checked Tags
- \item Click OK
- \item Now, in the CVS Repositories view
- \begin{itemize}
- \item Expand ``:pserver:anonymous@dev.eclipse.org:/cvsroot/tools''
- \item Then expand ``Branches''
- \item Then expand ``cdt\_6\_0''
- \item Then expand ``org.eclipse.cdt cdt\_6\_0''
- \item Then expand ``all''
- \end{itemize}
- \item Click on the first entry under ``all''
- (it should be org.eclipse.cdt), then shift-click on the last entry
- under ``all'' (it should be org.eclipse.cdt.ui.tests).
- All of the intervening plug-ins should now be selected.
- Right-click on any of the selected plug-ins, and select
- Check Out from the pop-up menu.
- (Check out will take several minutes.)
- \item You now have the CDT source code. Make sure it compiles successfully
- (lots of warnings, but no errors).
- \setcounter{running_counter}{\value{enumi}}
-\end{enumerate}
-
-\vspace{1em}
-\textbf{Part~II. Check out the Photran sources from CVS}
-\begin{enumerate}
- \setcounter{enumi}{\value{running_counter}}
- \item Under ``:pserver:anonymous@dev.eclipse.org:/cvsroot/tools,''
- expand HEAD, then expand
- org.eclipse.ptp, then expand
- photran
- \item Click on the first entry under ``photran''
- (it should be org.eclipse.photran-dev-docs), then shift-click on the last entry
- under ``photran'' (it should be org.eclipse.photran.xlf-feature).
- All of the intervening plug-ins should now be selected.
- Right-click on any of the selected plug-ins, and select
- Check Out from the pop-up menu.
- (Check out will take several minutes.)
- \setcounter{running_counter}{\value{enumi}}
-\end{enumerate}
-The sources should all compile (albeit with lots of warnings).
-
-\vspace{1em}
-\noindent\textbf{Part~III. Running the test cases}
-
-\begin{enumerate}
- \setcounter{enumi}{\value{running_counter}}
- \item In Package Explorer view, select the \texttt{org.eclipse.photran.core.vpg.tests} project.
- \item Right-click on that project and select Run As $>$ Run Configurations\ldots. A dialog will appear.
- \item In that dialog, create a new \textbf{JUnit Plug-in Test} launch configuration. Call it ``Photran-Tests''.
- \item For the configuration that you have just created, switch to the ``Environment'' tab and create a new variable called ``TESTING'' with a value of 1.
- \item Select ``Run'' to run the tests. To run the tests again, just launch the ``Photran-Tests'' configuration from the Eclipse Run menu.
-
- \vspace{.5em}
- \noindent\textit{\textbf{Note.} Some JUnit tests for the parser and
- refactoring engine require closed-source code that is not available in CVS.
- A warning will appear in the JUnit runner if this code is not available.}
- \setcounter{running_counter}{\value{enumi}}
-\end{enumerate}
diff --git a/org.eclipse.photran-dev-docs/dev-guide/app-deploy.ltx-inc b/org.eclipse.photran-dev-docs/dev-guide/app-deploy.ltx-inc
deleted file mode 100644
index c9da897..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/app-deploy.ltx-inc
+++ /dev/null
@@ -1,68 +0,0 @@
-% Release and Deployment Procedure
-
-\textit{Most contributors/committers do not need to read this. This explains
-our entire release and deployment procedure: setting the Photran version
-number, building the feature, uploading it to the download site, etc.}
-
-\begin{enumerate}
-
-\item Note that, as a policy, Photran's update site URL changes when the
-version of the Platform or CDT that it requires changes.
-
-\item If the VPG database structure (or any of the serialized classes) have
-changed, update the VPG database filename in the PhotranVPGDB class
-constructor. For example, in Photran 4.0 beta 5, the filename was
-``photran40b5vpg''
-
-\item There are three features: org.eclipse.photran-feature,
-org.eclipse.photran.intel-feature, and org.eclipse.photran.xlf-feature.
-(Ignore the vpg-feature; it is included in the photran-feature.) For each of
-these three features:
- \begin{enumerate}
- \item The feature.xml should open in the Feature Manifest Editor. In the
- Overview tab, first update the version number.
- \item Then click Synchronize, and ``force feature version into plug-in and
- fragment manifests.''
- \item Change the update site URL.
- \item In the Information tab, change the copyright year.
- \item For the intel-feature and xlf-feature, in the Dependencies tab, change
- the ``version to match'' to the new photran-feature version number
- \end{enumerate}
-
-\item In an update site project (create one if necessary), open the site.xml
-file (it should open in the Site Manifest Editor). Add the three features, and
-Build each of them. Note that, as long as the
-required versions of the Platform and CDT are the same, \textit{there can be multiple
-version of Photran features in the update site.} For example, this allowed
-users running 4.0 beta 4 to automatically upgrade to 4.0 beta 5 simply by
-clicking the ``Update'' button in Help > Software Updates > Installed Software.
-
-\item \textit{Delete} the artifacts.xml and content.xml files. In Eclipse
-3.4, these only seem to confuse/break the update manager.
-
-\item Switch to the ``site.xml'' tab in the Site Manifest Editor, and update
- \begin{enumerate}
- \item the ``site mirrorsURL'' to reflect the new update site URL, and
- \item the ``description url'' to reflect the new update site URL, and
- \end{enumerate}
-
-\item Assuming your committer username is joverbey and the update site project
-is called eclipse9.9cdt9.9,
-\begin{verbatim}
-cd /wherever/the/update/site/project/is
-rsync -av -e ssh joverbey@dev.eclipse.org:/home/data/users/joverbey/downloads/technology/photran/updates/
-\end{verbatim}
-\textit{Don't forget the trailing slash!}
-
-\item Update the timeline in the next appendix
-(org.eclipse.photran-dev-docs/dev-guide/app-history.ltx-inc)
-
-\item Tag the org.eclipse.photran module in CVS with something like
-v20090225\_4\_0\_5\_Beta5 where the date and version have been substituted
-appropriately
-
-\item Wait 24 hours for the update site to replicate to the mirrors
-
-\item E-mail photran, photran-announce, and photran-dev
-
-\end{enumerate}
diff --git a/org.eclipse.photran-dev-docs/dev-guide/app-error-parsers.ltx-inc b/org.eclipse.photran-dev-docs/dev-guide/app-error-parsers.ltx-inc
deleted file mode 100644
index aa9c0a9..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/app-error-parsers.ltx-inc
+++ /dev/null
@@ -1,56 +0,0 @@
-% Creating an Error Parser
-
-Error parsers scan the output of \texttt{make} for error messages for a
-particular compiler. When they see an error message they can recognize, they
-extract the filename, line number, and error message, and use it to populate the
-Problems view.
-
-For an example, see \texttt{IntelFortranErrorParser}.
-(It's a mere 60 lines.)
-
-To create a new error parser, do the following.
-
-\begin{itemize}
-
-\item We will assume that your error parser class will be in the
-\texttt{errorparsers} folder in the \texttt{org.eclipse.photran.core} plug-in
-and added to the \\\texttt{org.eclipse.photran.internal.errorparsers} package.
-
-\item Define a class implementing \texttt{IErrorParser}
-
-\item Implement \texttt{public boolean processLine(String line,
-ErrorParserManager eoParser)} which should always return false because
-ErrorParserManager appears not to use the result in a rational way
-
-\item In org.eclipse.photran.core's \texttt{plugin.xml}, find the place where we
-define all of the Fortran error parsers. Basically, copy an existing one. Your
-addition will look something like this:
-
-\pagebreak
-
-\begin{lstlisting}[frame=lines, language=xml]
-<extension
- id="IntelFortranErrorParser"
- name="Photran Error Parser for Some New Fortran Compiler"
- point="org.eclipse.cdt.core.ErrorParser">
- <errorparser
- class="org.eclipse.photran.internal.errorparsers.MyErrorParser">
- </errorparser>
-</extension>
-\end{lstlisting}
-
-\item Your new error parser will appear in the error parser list in the
-Preferences automatically, and it will be automatically added to new projects.
-For existing projects, you will need to open the project properties dialog and
-add the new error parser to the project manually.
-
-\end{itemize}
-
-\textbf{Note.} Error parsers do not have to be implemented in the Photran Core
-plug-in. In fact, they do not have to be implemented as part of Photran at all.
-If you create a brand new plug-in, you can specify \texttt{org.eclipse.cdt.core}
-as a dependency, include the above XML snippet in your plug-in's
-\texttt{plugin.xml}, and include your custom error parser class in that plug-in.
-The plug-in system for Eclipse will recognize your plug-in, detect that it
-extends the \texttt{org.eclipse.cdt.core.ErrorParser} extension point, and add
-it to the list of implemented error parsers automatically.
diff --git a/org.eclipse.photran-dev-docs/dev-guide/app-history.ltx-inc b/org.eclipse.photran-dev-docs/dev-guide/app-history.ltx-inc
deleted file mode 100644
index d78e31f..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/app-history.ltx-inc
+++ /dev/null
@@ -1,24 +0,0 @@
-% Photran Release History
-
-{\footnotesize
-\begin{tabular}{clccl}
-Photran & Date & Platform & CDT & Notes \\
-\hline
-1.2 & Jan 2005 & 2.1 & 1.2 & First public version; hacked CDT clone \\
-2.1 & Feb 2005 & 3.0 & 2.1 & First version available at eclipse.org \\
-3.0b1 & Aug 2005 & & & \\
-3.0b2 & Nov 2005 & & & \\
-3.0 & Jan 2006 & 3.1 & 3.0 & CDT extension; required modified CDT \\
-3.1b1 & Jul 2006 & & & \\
-3.1b2 & Apr 2007 & 3.1 & 3.1.1 & Extension of stock CDT \\
-4.0b1 & Jun 2007 & 3.2.2 & 3.1.2 & \textit{Rename, intro implicit none}\\
-4.0b2 & Oct 2007 & 3.3.1 & 4.0.1 & \\
-4.0b3 & Nov 2007 & 3.3.1.1 & 4.0.1 & \\
-4.0b4 & & 3.4 & 5.0 & First version release via an update site \\
-4.0b5 & Feb 2009 & 3.4 & 5.0.1 & \textit{Move saved vars to common} \\
- & Mar 2009 & 3.4 & 5.0.1 & First automated integration build under PTP \\
- & Sep 2009 & 3.5 & 6.0.0 & \\
-5.0.0 & Oct 2009 & 3.5 & 6.0.? & (Tentative) First official release at eclipse.org
-%Vers & Mon Year & Platfrm & CDT & \\
-\end{tabular}
-}
diff --git a/org.eclipse.photran-dev-docs/dev-guide/app-obfuscate-fortran.ltx-inc b/org.eclipse.photran-dev-docs/dev-guide/app-obfuscate-fortran.ltx-inc
deleted file mode 100644
index 0b712e8..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/app-obfuscate-fortran.ltx-inc
+++ /dev/null
@@ -1,179 +0,0 @@
-\section{Introduction}
-
-Contributing a new refactoring to Photran is best done by following a working
-example.
-
-This paragraph describes the general approach: First, an action must be added to
-both the editor popup menu \textbf{and} the Refactor menu in the menu bar by
-modifying the plugin.xml file. Then, the action delegate and its accompanying
-refactoring wizard have to be coded; these two classes are responsible for
-populating the user interface of the refactoring wizard dialog. Finally, the
-actual Fortran refactoring itself has to be coded.
-
-The remaining sections go into the details of each of those steps based on a
-simple (but not useful) refactoring example: obfuscating Fortran by removing the
-comments and adding redundant comments to the header. The source code is
-available from
-\url{http://subversion.cs.uiuc.edu/pub/svn/FruitFly/edu.uiuc.nchen.obfuscator/trunk/}
-
-\section{Modifying the plugin.xml}
-
-There are \textbf{four} extensions points (from the Eclipse core) that our plug-in needs to extend:
-
-\begin{description}
-
- \item [\texttt{org.eclipse.ui.commands}] Creates a new command \emph{category}
-to represent our refactoring. This category will be referenced by the other
-extensions in the plugin.xml file.
-
- \item [\texttt{org.eclipse.ui.actionSets}] This extension point is used to add
-menus and menu items to the Fortran perspective.
-
- \item [\texttt{org.eclipse.ui.actionSetPartAssociations}] Allows our
-refactoring to be visible/enabled in the context of the Fortran editor.
-
- \item [\texttt{org.eclipse.ui.popupMenus}] Displays our refactoring in the
-pop-up menu that appears during a right-click.
-
- \item [\texttt{org.eclipse.ui.bindings}] (Optional) Allows our refactoring to
-be invoked via keyboard shortcuts. For instance the Fortran Rename Refactoring
-is bound to the Alt + Shift + R keyboard shortcut, which is the same as the one
-for the Java Rename Refactoring.
-
-\end{description}
-
-Please refer to the documentation and schema description for each extension point; the documentation is available from Help $>$ Help Contents in Eclipse.
-
-Fortran currently does \textbf{not} use the newer \texttt{org.eclipse.ui.menus}
-extension points (introduced in Eclipse 3.3) for adding menus, menu items and
-pop-up menus.
-
-It is possible to use the newer \texttt{org.eclipse.ui.menus} extension point if
-desired, but this chapter uses the older extension points to remain consistent
-with how Photran is doing it.
-
-For more information, see the plugin.xml file of our refactoring example.
-
-\section{Creating an Action Delegate and a Refactoring Wizard}
-
-The \texttt{org.eclipse.ui.actionSets} and \texttt{org.eclipse.ui.popupMenus}
-extension points that were extended in our plugin.xml file require a reference
-to action delegate class that we need to provide.
-
-For a Fortran refactoring, our action delegate should extend the
-\\\texttt{AbstractFortranRefactoringActionDelegate} class \textbf{and} implement
-the \\\texttt{IWorkbenchWindowActionDelegate} and \texttt{IEditorActionDelegate}
-interfaces.
-
-The most important method in our action delegate class is the
-\textbf{constructor}. The constructor has to be done in a particular way so that
-everything is setup correctly. Listing~\ref{lst:obfuscateaction} shows how the constructor needs to be setup.
-
-\begin{code}
-\begin{lstlisting}
-public class ObfuscateAction extends AbstractFortranRefactoringActionDelegate
- implements IWorkbenchWindowActionDelegate, IEditorActionDelegate {
-
- public ObfuscateAction() {
- super(ObfuscateRefactoring.class, ObfuscateRefactoringWizard.class);
- }
-
- ...
-}
-\end{lstlisting}
-\caption{\texttt{ObfuscateAction} for our simple refactoring example}
-\label{lst:obfuscateaction}
-\end{code}
-
-Inside our constructor, we need to call the parent constructor that takes
-\textbf{two} parameters: the class of the actual refactoring object (e.g.
-ObfuscateRefactoring) and the class of the actual refactoring wizard (e.g.
-ObfuscateRefactoringWizard). The parent class will dynamically create the
-refactoring object and refactoring wizard using Java reflection.
-
-Our refactoring wizard needs to be a subclass of
-\texttt{AbstractFortranRefactoringWizard}. The only method that we are required
-to implement is the \texttt{doAddUserInputPages} method. This page is
-responsible for creating a page for the wizard. For instance, a refactoring such
-as rename refactoring requires the user to provide a new name. So the
-\texttt{doAddUserInputPages} is responsible for creating the interface for that.
-
-Ideally, if our refactoring does not require the user to provide any input, it
-should just have an empty \texttt{doAddUserInputPages} method. However, because
-of a bug in the Mac OS X version of Eclipse, it is necessary to add a
-\emph{dummy} page. Without this dummy page the refactoring will cause the entire
-Eclipse UI to lock up on Mac OS X. Listing~\ref{lst:dummy_wizard_page} shows how
-to add a dummy input page. \\
-
-\begin{code}
-\begin{lstlisting}
-protected void doAddUserInputPages() {
- addPage(new UserInputWizardPage(refactoring.getName()) {
-
- public void createControl(Composite parent) {
- Composite top = new Composite(parent, SWT.NONE);
- initializeDialogUnits(top);
- setControl(top);
-
- top.setLayout(new GridLayout(1, false));
-
- Label lbl = new Label(top, SWT.NONE);
- lbl.setText("Click OK to obfuscate the current Fortran file.
- To see what changes will be made, click Preview.");
-
- }
- });
-}
-\end{lstlisting}
-\caption{Adding a \texttt{dummy} wizard input page}
-\label{lst:dummy_wizard_page}
-\end{code}
-
-\section{Creating the Actual Refactoring}
-
-Section~\ref{sec:structure_of_a_fortran_refactoring} gives a good overview of
-the \textbf{four} methods that a Fortran refactoring needs to implement. And
-Section~\ref{sec:refactoring_caveats} gives an overview of things to avoid while
-performing a refactoring. Our example refactoring conforms to the lessons in
-both those sections.
-
-Here we briefly describe the four methods in our example:
-
-\begin{description}
-
- \item [getName] This just returns the text ``Obfuscate Fortran Code''
-describing our refactoring. This text will be used as the title of the
-refactoring wizard dialog.
-
- \item [doCheckInitialConditions] Our simple refactoring does not have any
-\emph{real} initial conditions. Our refactoring can proceed as long as the
-current file can be parsed as valid Fortran source code. This is automatically
-checked by the \texttt{FortranRefactoring} parent class.
-
- Instead we use this method as a hook to perform some simple program analysis --
-acquiring the names of all the functions and subroutines in the current file. We
-will print these names later as part of the header comment.
-
- \item [doCheckFinalConditions] Since we do not require the user to provide any
-additional input, there are no final conditions to check.
-
- \item [doCreateChange] The actual refactoring changes are constructed in this
-method.
-
-We iterate through every token in the current file to check if it has a comment
-string. Comment strings are acquired by calling \texttt{Token\#getWhiteBefore()}
-and \texttt{Token\#getWhiteAfter()}. Following the advice of
-Section~\ref{sec:refactoring_caveats}, we store a list of all the tokens (call
-this list TokensWithComments) that contain comment strings. Once we have
-iterated through all the tokens, we proceed to remove the comments for tokens in
-our TokensWithComments list. Removing comments is done by calling
-\texttt{Token\#setWhiteBefore()} and \texttt{Token\#setWhiteAfter()} with blank
-strings as parameters.
-
-Finally, we create a header comment that just lists all the functions and
-subroutines in the current source file and add that to the preamble of the main
-program.
-
-\end{description}
-
-For more information, please consult the source code for our example.
diff --git a/org.eclipse.photran-dev-docs/dev-guide/app-rename-tests.ltx-inc b/org.eclipse.photran-dev-docs/dev-guide/app-rename-tests.ltx-inc
deleted file mode 100644
index 3581254..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/app-rename-tests.ltx-inc
+++ /dev/null
@@ -1,122 +0,0 @@
-% Creating a Rename Refactoring Test Case
-
-JUnit tests for the Rename refactoring are located in the
-\texttt{org.eclipse.photran.refactoring.tests} plug-in project. A Rename test
-has two components:
-
-\begin{enumerate}
-
-\item one or more Fortran files, which contain the code to be refactored, and
-
-\item a JUnit test suite class, which creates tests attempting to rename the
-identifiers in that file.
-
-\end{enumerate}
-
-The Fortran files are stored as .f90 files in the \emph{rename-test-code}
-folder. The JUnit tests are similarly-named Java classes in the
-\texttt{org.eclipse.photran.refactoring.tests.rename} package.
-
-A sample JUnit test suite is the following. The more complex tests follow a
-similar structure. Here, the \texttt{vars} array records all of the identifiers
-and the line/column positions on which they occur. The test suite constructor
-attempts to rename each identifier to \texttt{z} and also to
-\texttt{a\_really\_really\_long\_name}.
-
-\shabox{Because our strategy for testing requires the \emph{exact} line and
-column position, using tabs instead of spaces for indenting could interfere with
-the positioning. Therefore, for testing purposes, test cases (the Fortran test
-files) should be indented with \textbf{spaces only}. However, when an actual
-Fortran programmer invokes a refactoring through the Eclipse UI, the indentation
-with tabs or spaces is not a problem because the Eclipse editor is smart enough
-to provide the correct position (based on expanding tabs into spaces
-internally). } \\
-
-\begin{lstlisting}[frame=lines]
-public class Rename2 extends RenameTestSuite
-{
- /////////////////////////////////////////////////////////////////////////
- //
- // RECORD POSITIONS OF ALL IDENTIFIERS IN RENAME2.F90, AND
- // GROUP THEM ACCORDING TO WHICH ONES SHOULD BE RENAMED TOGETHER
- //
- /////////////////////////////////////////////////////////////////////////
-
- private String filename = "rename2.f90";
-
- private Ident[] vars = new Ident[]
- {
- var(filename, "Main", new LineCol[] { lc(2,9), lc(27,13) }),
- var(filename, "one", new LineCol[] { lc(4,16), lc(12,14),
- lc(16,11), lc(20,11) }),
- var(filename, "two", new LineCol[] { lc(5,27), lc(10,13),
- lc(13,14), lc(17,14) }),
- var(filename, "three", new LineCol[] { lc(6,16), lc(14,9),
- lc(18,9) }),
- var(filename, "four", new LineCol[] { lc(10,21), lc(15,14),
- lc(19,14) })
- };
-
- /////////////////////////////////////////////////////////////////////////
- //
- // TEST CASES
- //
- /////////////////////////////////////////////////////////////////////////
-
- public static Test suite() throws Exception
- {
- return new Rename2();
- }
-
- public Rename2() throws Exception
- {
- startTests("Renaming program with comments and line continuations");
- for (String name : new String[] { "z", "a_really_really_long_name" })
- for (Ident var : vars)
- addSuccessTests(var, name);
- endTests();
- }
-}
-\end{lstlisting}
-
-The \texttt{addSuccessTests} method adds several test cases to the suite: it
-simulates the user clicking on each occurrence of the identifier and asking to
-rename that instance. (Of course, no matter which occurrence is clicked on, all
-instances should be renamed\ldots but this has occasionally not happened.)
-
-If the rename should not have succeeded--that is, a precondition would not be
-met--\texttt{addPreconditionTests} should have been called rather than
-\texttt{addSuccessTests}. A good testing strategy ensures that a program behaves
-correctly: it should do \textbf{only} what it is supposed to do and nothing
-more. In our case, it should rename only the identifiers that are affected and
-ensure that the other identifiers are left untouched.
-
-\texttt{Rename3} is a slightly more complicated example, which renames
-identifiers spanning multiple files. In this case, a large boolean matrix is
-used to record which identifiers should be renamable to which other identifiers:
-
-\begin{code}
-\begin{lstlisting}
-private boolean[][] expectSuccess = new boolean[][]
-{
-
-/* vvv can be renamed to >>> myProgram, aRenamed3, bRenamed3, contained,
-/* myProgram */ new boolean[] { false, true, true, true, ...
-/* aRenamed3 */ new boolean[] { true, false, false, false, ...
-/* bRenamed3 */ new boolean[] { true, false, false, false, ...
-/* contained */ new boolean[] { true, false, false, false, ...
-/* external */ new boolean[] { false, false, false, false, ...
-/* moduleA */ new boolean[] { false, false, false, false, ...
-/* aSub1of3 */ new boolean[] { true, false, false, false, ...
-/* aSub2of3 */ new boolean[] { true, false, false, false, ...
-/* aSub3of3 */ new boolean[] { true, true, true, true, ...
-/* moduleB */ new boolean[] { false, false, false, false, ...
-/* bSub1of3 */ new boolean[] { true, true, true, true, ...
-/* bSub2of3 */ new boolean[] { true, false, false, false, ...
-/* bSub3of3 */ new boolean[] { true, true, true, true, ...
-/* moduleC */ new boolean[] { false, false, false, false, ...
-/* cSub */ new boolean[] { true, true, true, true, ...
-};
-\end{lstlisting}
-\caption{Partial representation of the boolean matrix in \texttt{Rename3}}
-\end{code}
diff --git a/org.eclipse.photran-dev-docs/dev-guide/app-uiuc.ltx-inc b/org.eclipse.photran-dev-docs/dev-guide/app-uiuc.ltx-inc
deleted file mode 100644
index 0d46705..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/app-uiuc.ltx-inc
+++ /dev/null
@@ -1,68 +0,0 @@
-% Additional Information for UIUC Personnel
-
-\begin{center}
-\framebox{\parbox{5.5in}{\textit{The following information is only of interest
-to developers in the Department of Computer Science at the University of
-Illinois at Urbana-Champaign.}}}
-\end{center}
-
-\section{Photran Subversion Repository at UIUC}
-
-A private Subversion repository for internal testing and research work is
-provided by TSG at the following URL. \textit{You will only be able to access
-this repository if you have specifically been granted access.} The repository
-requires authentication using your NetID and Kerberos password.
-To access a Subversion repository from Eclipse, you must install an additional
-Eclipse plug-in (either Subclipse or Subversive).
-
-\begin{center}
-\begin{verbatim}
-https://subversion.cs.uiuc.edu/svn/Photran/
-\end{verbatim}
-\end{center}
-
-Currently, this repository contains the following.
-
-\begin{itemize}
-
-\item
-\textbf{Lua refactoring tool (lua-refactoring).}
-A small, prototype, Eclipse-based refactoring tool for the Lua scripting
-language, based on Photran's refactoring infrastructure.
-
-\item
-\textbf{Large Fortran test codes (photran-projects).}
-Checking these out into your workspace will enable about 6,000 additional
-test cases in the JUnit test suite. \textit{These applications are PRIVATE.
-They may NOT be distributed and are intended only for testing Photran.}
-
-\item
-\textbf{Sample Obfuscation refactoring (sample-refactoring).}
-The sample refactoring described in Appendix~\ref{app:obfuscate_refactoring}.
-
-\item
-\textbf{C preprocessor support (c-preprocessor).}
-C preprocessor support, based on the C preprocessor in CDT 5. This will
-eventually be moved into the public CVS repository.
-
-\end{itemize}
-
-\section{Photran Web Site at UIUC}
-
-TSG provides a Web hosting infrastructure based on the popular CPanel system
-and has set up a web hosting account for Photran.
-This hosting environment supports PHP, MySQL databases, CGI
-scripts, and a number of other popular web technologies.
-Documentation for these features is provided in the control
-panel. You can access your web content via the control panel,
-SSH, or WebDAV.
-Here are the account details:
-
-\begin{center}
-\begin{verbatim}
- web URL: http://photran.cs.illinois.edu/
- control panel: https://cpanel.cs.illinois.edu:2083/
- SSH access: cpanel.cs.illinois.edu
- web root: ~/public_html
-\end{verbatim}
-\end{center}
diff --git a/org.eclipse.photran-dev-docs/dev-guide/authors.ltx b/org.eclipse.photran-dev-docs/dev-guide/authors.ltx
deleted file mode 100644
index b49bbbf..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/authors.ltx
+++ /dev/null
@@ -1,5 +0,0 @@
-% List of author names for the Photran developer's guide
-
-N. Chen \\
-J. Overbey \\
-%your name here \\
diff --git a/org.eclipse.photran-dev-docs/dev-guide/build.sh b/org.eclipse.photran-dev-docs/dev-guide/build.sh
deleted file mode 100644
index 0c1e63b..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/build.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-pdflatex dev-guide.ltx
-pdflatex dev-guide.ltx
-pdflatex cvs-instructions.ltx
-rm -rf *.aux *.log *.toc *.dvi *.ps *.out
diff --git a/org.eclipse.photran-dev-docs/dev-guide/build.xml b/org.eclipse.photran-dev-docs/dev-guide/build.xml
deleted file mode 100644
index 08b3829..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/build.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0"?>
-<project default="main" basedir=".">
- <target name="init">
- <tstamp/>
- </target>
-
- <target name="main" description="Generate PDFs using pdflatex">
- <!-- Run find-pdflatex.sh in the build directory to find pdflatex -->
- <exec executable="find-pdflatex.sh"
- resolveexecutable="true"
- outputproperty="pdflatex"
- failonerror="true"
- failifexecutionfails="true"/>
-
- <!-- Now run pdflatex -->
- <exec executable="${pdflatex}"
- failonerror="true"
- failifexecutionfails="true">
- <arg value="dev-guide.ltx" />
- </exec>
- <exec executable="${pdflatex}"
- failonerror="true"
- failifexecutionfails="true">
- <arg value="dev-guide.ltx" />
- </exec>
- <exec executable="${pdflatex}"
- failonerror="true"
- failifexecutionfails="true">
- <arg value="cvs-instructions.ltx" />
- </exec>
- <delete><fileset dir="." includes="*.aux *.log *.toc *.dvi *.ps *.out" /></delete>
- <exec executable="bash"><arg value="-c" /><arg value="if [ "$$LOGNAME" == "joverbey" ]; then xpdf -paper letter dev-guide.pdf; fi" /></exec>
- </target>
-
- <target name="clean" description="Remove generated PDFs">
- <delete><fileset dir="." includes="*.pdf" /></delete>
- <delete><fileset dir="." includes="*.aux *.log *.toc *.dvi *.ps *.out" /></delete>
- </target>
-
-</project>
diff --git a/org.eclipse.photran-dev-docs/dev-guide/cdt.ltx-inc b/org.eclipse.photran-dev-docs/dev-guide/cdt.ltx-inc
deleted file mode 100644
index 70540b7..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/cdt.ltx-inc
+++ /dev/null
@@ -1,269 +0,0 @@
-\section{Introduction}
-
-The C/C++ Development Tools (CDT)\footnote{See
-\url{http://www.eclipse.org/cdt/}} enables Eclipse to function as a first-class
-C/C++ IDE. CDT provides features that a programmer expects from an IDE such
-as project management, automated build, integrated debugging, etc. In addition,
-CDT also provides extension points for writing IDEs for other programming
-languages that follow the C/C++ edit-compile-debug-compile cycle closely;
-Fortran is one such language.
-
-Photran builds upon the CDT by leveraging its extension points. As such, it
-needs to follow certain conventions and expectations of the CDT. In this
-chapter, we discuss those conventions and expectations.
-
-\section{CDT Terminology}
-
-The following are CDT terms that will be used extensively when discussing
-Photran.
-
-\begin{itemize}
-
-\item \textbf{Standard Make projects} are ordinary Eclipse projects, except that
-CDT and Photran recognize them as being ``their own'' type of project (as
-opposed to, say, projects for JDT, EMF, or another Eclipse-based tool). Users
-must supply their own Makefile, typically with targets ``clean'' and ``all.''
-CDT/Photran cleans and builds the project by running \texttt{make}.
-
-\item \textbf{Managed Make projects} are similar to standard make projects,
-except that CDT/Photran automatically generates a Makefile and edits the
-Makefile automatically when source files are added to or removed from the
-project. The \textbf{Managed Build System} is the part of CDT and Photran that
-handles all of this.
-
-\item \textbf{Binary parsers} are able to detect whether a file is a legal
-executable for a platform (and extract other information from it). CDT
-provides binary parsers for Windows (PE), Linux (ELF), Mac OS X (Mach), and
-others. Photran does not provide any additional binary parsers.
-
-\item \textbf{Error parsers} are provided for many compilers. CDT provides a gcc
-error parser, for example. Photran provides error parsers for Lahey Fortran, F,
-g95, and others. Essentially, error parsers scan the output of \texttt{make} for
-error messages for their associated compiler. When they see an error message
-that they recognize, they extract the filename, line number, and error message,
-and use it to populate the Problems View. See
-Appendix~\ref{ap:creating_an_error_parser} for an example on how to create an
-error parser.
-
-\item CDT keeps a \textbf{model} of all of the files in a project. The model is
-essentially a tree of \textbf{elements}, which all derive from the (CDT Core)
-class \texttt{ICElement}. It is described in the next section.
-
-\end{itemize}
-
-\section{The Model}
-
-\emph{This section describes the CDT model in detail. Understanding the CDT
-model is useful for contributors who are interested in modifying the UI and how
-Fortran projects are managed in the Fortran perspective. Contributors who are
-interested in creating refactorings and program analysis tools should
-familiarize themselves with the Abstract Syntax Tree (AST) and Virtual Program
-Graph (VPG) described in Chapter~\ref{cha:parsing}.}
-
-The Fortran Projects view in Photran is essentially a visualization of
-the CDT's \textit{model}, a tree data structure describing the contents
-of all Fortran Projects in the workspace as well as the high-level contents
-(functions, aggregate types, etc.) of source files.
-
-Alain Magloire (CDT) describes the model, A.K.A. the \texttt{ICElement}
-hierarchy, in the thread ``Patch to create ICoreModel interface'' on the cdt-dev
-mailing list:
-
-{\footnotesize
-\begin{quote}
-\begin{verbatim}
-So I'll explain a little about the ICElement and what we get out of it for
-C/C++.
-
-The ICElement hierarchy can be separated in two:
-(1) - how the Model views the world/resources (all classes above ITranslationUnit)
-(2) - how the Model views the world/language (all classes below ITranslationUnit).
-
-How we(C/C++) view the resources:
-- ICModel --> [root of the model]
- - ICProject --> [IProject with special attributes/natures]
- - ISourceRoot --> [Folder with a special attribute]
- - ITranslationUnit --> [IFile with special attributes, e.g. extensions *.c]
- - IBinary --> [IFile with special attributes, elf signature, coff etc]
- - IArchive --> [IFile with special attributes, "<ar>" signature]
- - ICContainer -> [folder]
-
-There are also some special helper classes
- - ILibraryReference [external files use in linking ex:libsocket.so, libm.a, ...]
- - IIncludeReference [external paths use in preprocessing i.e. /usr/include, ...]
- - IBinaryContainer [virtual containers regrouping all the binaries found
- in the project]
-
-This model of the resources gives advantages:
-- navigation of the binaries,
-- navigation of the include files not part of the workspace (stdio.h, socket.h, etc)
-- adding breakpoints
-- search
-- contribution on the objects
-etc.....
-
-[...]
-
-(2) How we view the language.
-
-Lets be clear this is only a simple/partial/incomplete view of the language. For
-example, we do not drill down in blocks, there are no statements(if/else
-conditions) etc .... For a complete interface/view of the language, clients
-should use the __AST__ interface.
-\end{verbatim}
-\end{quote}
-}
-
-\pagebreak
-
-From another of Alain's posts in that thread:
-
-{\footnotesize
-\begin{quote}
-\begin{verbatim}
-Lets make sure we are on the same length about the ICElement hierarchy.
-It was created for a few reasons:
-
-- To provide a simpler layer to the AST. The AST interface is too complex
- to handle in most UI tasks.
-- To provide objects for UI contributions/actions.
-- The glue for the Working copies in the Editor(CEditor), IWorkingCopy class
-- The interface for changed events.
-- ...
-
-Basically it was created for the UI needs: Outliner, Object action contributions,
-C/C++ Project view and more.
-
-The CoreModel uses information taken from:
-- the Binary Parser(Elf, Coff, ..)
-- the source Parser(AST parser)
-- the IPathEntry classes
-- the workspace resource tree
-- The ResolverModel (*.c, *.cc extensions), ...
-
-to build the hierarchy.
-\end{verbatim}
-\end{quote}
-}
-
-\shabox{The CDT model should \textbf{not} be confused with the Abstract Syntax
-Tree (AST) model that is discussed in Section~\ref{sec:ast_structure}. They are
-\textbf{not} identical. It is best to think of the CDT model as containing a
-\emph{partial/simplified view} of the AST model to represent the
-\emph{interesting} elements in the source code (program names, function names,
-subroutine names) \textbf{in addition} to a model of the current workspace
-resources (Fortran projects, Fortran source files, binary executables). \emph{In
-other words, the CDT model knows about the language and the resources}. The AST,
-on the other hand, completely models \emph{everything} in the source file (but
-nothing about the resources), including low-level elements that the user is
-unlikely to be interested in knowing about (assignment nodes, variable
-declarations). While low-level, these elements are useful for refactoring and
-program analysis.}
-
-By conforming to the CDT model, Photran is able to reuse various UI
-elements for \emph{free}. For instance, the Outline View for Photran is managed
-by CDT; Photran just needs to provide a CDT-compatible model to represent its
-project and source files.
-
-The \texttt{FortranLanguage} class is responsible for initializing concrete
-classes that will build up the model that CDT expects. For more
-information, refer to the FortranLanguage.java file in the
-\texttt{org.eclipse.photran.cdtinterface} plug-in project.
-
-There are \textbf{two} options for creating suitable \emph{model builders}:
-\begin{enumerate}
-\item The \texttt{org.eclipse.photran.cdtinterface} plug-in project defines the
-\\ \texttt{org.eclipse.photran.cdtinterface.modelbuilder} extension point that
-other plug-ins can extend. Plug-ins extending that extension point are
-responsible for providing a suitable model builder. Using this option, it is
-possible to have multiple model builders. The model builder to use can be
-selected in the workspace preferences (under Fortran $>$ CDT Interface).
-
-\item If there are no plug-ins that extend the
-\texttt{org.eclipse.photran.cdtinterface.modelbuilder} extension point, then
-Photran falls back on a default implementation. The default implementation is
-provided by the \texttt{SimpleFortranModelBuilder} class. It relies on simple
-lexical analysis to build the model. This simple model builder might not be able
-to accurately handle the more complicated features of the Fortran language.
-\end{enumerate}
-
-The Photran VPG (see Section~\ref{sec:virtual_program_graph}) inside the
-\texttt{org.eclipse.photran.core.vpg} project uses the first option to
-contribute a model builder. The relevant classes are under the
-\texttt{org.eclipse.photran.internal.core.model} package i.e.
-\texttt{FortranModelBuilder}, \texttt{FortranModelBuildingVisitor} and
-\texttt{FortranParseTreeModelBuildingVisitor}.
-
-As mentioned in the post by Alain, all model elements must implement the
-\texttt{ICElement} interface for CDT to recognize them. In Photran, the
-\texttt{FortranElement} class implements the \texttt{ICElement} interface and
-serves as the base class for all Fortran elements such as subroutines,
-functions, modules, variables, etc. Each subclass of \texttt{FortranElement}
-corresponds to an element that can be displayed in the Outline View.
-
-\section{Reusing UI Elements}
-
-Various UI elements in Photran are also reused from the CDT through subclassing.
-For instance, the \texttt{NewProjectDropDownAction} class shown in
-Listing~\ref{lst:newprojectdropdownaction} is a subclass of
-\texttt{AbstractWizardDropDownAction} declared in CDT.
-\texttt{AbstractWizardDropDownAction} provides most of the implementation and
-our subclass just provides the Photran-specific details such as the actual
-action that will be invoked.
-
-\begin{code}
-\begin{lstlisting}
-public class NewProjectDropDownAction extends AbstractWizardDropDownAction
-{
- public NewProjectDropDownAction()
- {
- super();
- PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
- ICHelpContextIds.OPEN_PROJECT_WIZARD_ACTION);
- }
-
- protected IAction[] getWizardActions()
- {
- return FortranWizardRegistry.getProjectWizardActions();
- }
-}
-\end{lstlisting}
-\caption{\texttt{NewProjectDropDownAction} class}
-\label{lst:newprojectdropdownaction}
-\end{code}
-
-Our \texttt{NewProjectDropDownAction} is invoked through the right-click menu by
-going to New... $>$ Other $>$ Fortran. It creates a new Fortran project in the
-current workspace.
-
-In addition, we could also customize the icons for each UI element by modifying
-the appropriate attributes in the plugin.xml file in the
-\texttt{org.eclipse.photran.cdtinterface} project.
-
-\section{The CDT Debugger and \texttt{gdb}}
-
-Currently, Photran re-uses the CDT debugger as-is and does not contribute any
-enhancements to it. Here is a brief summary of how the debugger works:
-
-\begin{itemize}
-
-\item The so-called CDT debugger is actually just a graphical interface to
-\texttt{gdb}, or more specifically to \texttt{gdb/mi}. So, if something doesn't
-appear to work, it is advisable to try it in \texttt{gdb} directly or to use
-another \texttt{gdb}-based tool such as DDD.
-
-\item The debugger UI ``contributes'' breakpoint markers and actions to the
-editor. The ``set breakpoint'' action, and the breakpoint markers that appear in
-the ruler of the CDT (and Photran) editors are handled \textbf{entirely} by the
-CDT debug UI; there is no code for this in Photran. The ``set breakpoint''
-action is enabled by calling \lstinline!setRulerContextMenuId("#CEditorRulerContext");!
-in the \texttt{AbstractFortranEditor} constructor.
-
-\item \texttt{gdb} reads debug symbols from the executable it is debugging.
-That is how it knows what line it's on, what file to open, etc. Photran
-has \textit{nothing} to do with this: These symbols are written entirely
-by the compiler. Moreover, the compiler determines what shows up in the
-Variables View. If the debugger views seem to be a mess, it is the
-compiler's fault, not Photran's.
-
-\end{itemize}
diff --git a/org.eclipse.photran-dev-docs/dev-guide/cvs-instructions.ltx b/org.eclipse.photran-dev-docs/dev-guide/cvs-instructions.ltx
deleted file mode 100644
index 2df610e..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/cvs-instructions.ltx
+++ /dev/null
@@ -1,32 +0,0 @@
-\documentclass[10pt,letterpaper]{article}
-
-%\usepackage{anysize}
-%\marginsize{1.5in}{1.5in}{1.5in}{1.5in}
-\usepackage{fullpage}
-\usepackage[pdftex]{hyperref}
-\hypersetup{
- colorlinks,%
- citecolor=black,%
- filecolor=black,%
- linkcolor=black,%
- urlcolor=blue
-}
-
-\hyphenpenalty=5000
-\tolerance=1000
-
-% Skip a line between paragraphs, and don't indent them
-\setlength{\parskip}{10pt} % 10 pt = space between paragraphs
-\setlength{\parindent}{0pt} % 0 pt = indentation
-
-\begin{document}
-
-\title{Getting the Photran 5.0 Sources from CVS}
-\author{}
-\date{}
-
-\maketitle
-
-\input{app-cvs.ltx-inc}
-
-\end{document}
diff --git a/org.eclipse.photran-dev-docs/dev-guide/cvs-instructions.pdf b/org.eclipse.photran-dev-docs/dev-guide/cvs-instructions.pdf
deleted file mode 100644
index 7bcf019..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/cvs-instructions.pdf
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.photran-dev-docs/dev-guide/dev-guide.ltx b/org.eclipse.photran-dev-docs/dev-guide/dev-guide.ltx
deleted file mode 100644
index f163457..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/dev-guide.ltx
+++ /dev/null
@@ -1,115 +0,0 @@
-%\documentclass[10pt,letterpaper,twocolumn]{article}
-\documentclass[12pt,letterpaper]{report}
-
-%\usepackage{anysize}
-%\marginsize{0.5in}{0.5in}{0.5in}{0.5in}
-
-
-% Unnumbered footnotes
-\long\def\symbolfootnote[#1]#2{\begingroup\def\thefootnote{\fnsymbol{footnote}}
-\footnote[#1]{#2}\endgroup}
-
-\usepackage{fullpage}
-\usepackage[pdftex]{graphicx}
-\usepackage{color}
-\definecolor{LightMagenta}{cmyk}{0.1,0.8,0,0.1}
-
-\usepackage{listings}
-\lstset{numbers=left, numberstyle=\tiny, tabsize=2, numbersep=5pt, captionpos=b,
-basicstyle=\footnotesize, showstringspaces=false,
-emphstyle=\color{LightMagenta}\bfseries, language=Java}
-
-\usepackage[pdftex]{hyperref}
-\hypersetup{
- colorlinks,%
- citecolor=black,%
- filecolor=black,%
- linkcolor=black,%
- urlcolor=blue
-}
-
-\usepackage{float}
-\floatstyle{ruled}
-\newfloat{image}{htp}{lop}[chapter]
-\floatname{image}{Figure}
-
-\newfloat{code}{htp}{lop}[chapter]
-\floatname{code}{Listing}
-
-\usepackage{shadow}
-
-\hyphenpenalty=5000
-\tolerance=1000
-
-% Skip a line between paragraphs, and don't indent them
-\setlength{\parskip}{10pt} % 10 pt = space between paragraphs
-\setlength{\parindent}{0pt} % 0 pt = indentation
-
-\begin{document}
-
-\title{Photran 5.0 Developer's Guide}
-\author{
-\input{authors.ltx}
-}
-\date{}
-
-\maketitle
-
-\tableofcontents
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\chapter{Introduction}\symbolfootnote[0]{Last significant update: 09/16/09 (JO), 08/08/08 (NC)}
-\label{cha:introduction}
-\input{intro.ltx-inc}
-
-\chapter{Interactions with CDT}\symbolfootnote[0]{Last significant update: 08/08/08 (NC)}
-\label{cha:cdt}
-\input{cdt.ltx-inc}
-
-\chapter{Plug-in Decomposition}\symbolfootnote[0]{Last significant update: 09/16/09 (JO), 08/08/08 (NC)}
-\label{cha:plugins}
-\input{plugins.ltx-inc}
-
-\chapter{Parsing and Program Analysis}\symbolfootnote[0]{Last significant update: 09/16/09 (JO), 08/08/08 (NC)}
-\label{cha:parsing}
-\input{parsing.ltx-inc}
-
-\chapter{Refactoring}\symbolfootnote[0]{Last significant update: 09/16/09 (JO), 08/08/08 (NC)}
-\label{cha:refactoring}
-\input{refactoring.ltx-inc}
-
-\chapter{Photran Editors}\symbolfootnote[0]{Last significant update: 08/08/08 (NC)}
-\label{cha:editor}
-\input{editor.ltx-inc}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\appendix
-
-\chapter{Getting the Photran 5.0 Sources from CVS}\symbolfootnote[0]{Last significant update: 09/16/09}
-\input{app-cvs.ltx-inc}
-
-\chapter{Additional Information for UIUC Personnel}\symbolfootnote[0]{Last significant update: 10/02/09}
-\input{app-uiuc.ltx-inc}
-
-\chapter{Creating an Error Parser}\symbolfootnote[0]{Last significant update: 08/08/08}
-\label{ap:creating_an_error_parser}
-\input{app-error-parsers.ltx-inc}
-
-\chapter{Simple Fortran Refactoring Example}\symbolfootnote[0]{Last significant update: 08/08/08}
-\label{app:obfuscate_refactoring}
-\input{app-obfuscate-fortran.ltx-inc}
-
-\chapter{Creating Tests for the Rename Refactoring}\symbolfootnote[0]{Last significant update: 08/08/08}
-\input{app-rename-tests.ltx-inc}
-
-%\chapter{Release and Deployment Procedure}\symbolfootnote[0]{Last significant update: 02/25/09}
-%\input{app-deploy.ltx-inc}
-
-\chapter{Release History}
-\input{app-history.ltx-inc}
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\end{document}
diff --git a/org.eclipse.photran-dev-docs/dev-guide/editor.ltx-inc b/org.eclipse.photran-dev-docs/dev-guide/editor.ltx-inc
deleted file mode 100644
index 28d5299..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/editor.ltx-inc
+++ /dev/null
@@ -1,153 +0,0 @@
-\section{Fortran Text Editors}
-
-There are \textbf{two} different text editors in Photran. This is necessary to
-support both the fixed-form Fortran 77 standard and the free-form Fortran 90 \&
-95 standard.
-
-Fortran 77 is known as fixed-form Fortran because it requires certain constructs
-to be \emph{fixed} to particular columns. For instance, Fortran statements can
-only appear between columns 7 - 72; anything beyond column 72 is ignored
-completely. This requirement is an artifact of the days when punched cards were
-used for Fortran programming. However, Fortran 77 compilers still enforce this
-requirement. The fixed-form editor in Photran helps the programmer remember this
-requirement by displaying visual cues to denote the column partitions.
-
-Fortran 90/95 adopted the free-form format that most programmers today are
-accustomed to. Nonetheless, because Fortran 77 is still considered a subset of
-Fortran 90/95, it is possible to write programs following the fixed-form format.
-As such, the free-form editor maintains some visual cues on column numbering
-(although using a more subtle UI).
-
-The UML class diagram in Figure~\ref{fig:images_editor_class_hierarchy} shows
-the hierarchy of the editors in Photran.
-
-\begin{image}
- \centering
- \includegraphics[height=3in]{images/editor_hierarchy.png}
- \caption{Photran editor class hierarchy}
- \label{fig:images_editor_class_hierarchy}
-\end{image}
-
-Both the \texttt{FixedFormFortranEditor} and \texttt{FreeFormFortranEditor}
-concrete classes inherit from \texttt{AbstractFortranEditor}. Most of the actual
-work is done inside \texttt{AbstractFortranEditor}; its subclasses just specify
-how to decorate the UI.
-
-In general, the implementation of \texttt{AbstractFortranEditor} closely follows
-the standard implementation of text editors in Eclipse. The following section
-highlights some of the Photran-specific mechanisms of the text editor. For more
-information on how text editors work in Eclipse, please consult the Eclipse
-references mentioned in Chapter~\ref{cha:introduction}.
-
-\section{Contributed \texttt{SourceViewerConfiguration}}
-
-Text editors in Eclipse rely on a \texttt{SourceViewerConfiguration} to enhance
-the current editor with features such as auto indenting, syntax highlighting and
-formatting. By default, most of these features are already provided by the
-concrete \texttt{SourceViewerConfiguration} class. However, it is possible to
-provide a custom implementation of a \texttt{SourceViewerConfiguration}. This is
-done by calling the
-\texttt{setSourceViewerConfiguration(SourceViewerConfiguration
-sourceViewerConfiguration)} method in an Eclipse text editor.
-
-Photran provides an additional layer of flexibility by allowing its
-\texttt{SourceViewerConfiguration} to be contributed from other plug-ins. A
-plug-in that is interested in contributing a \texttt{SourceViewerConfiguration}
-to the Photran editors must extend the
-\\\texttt{org.eclipse.photran.ui.sourceViewerConfig} extension point defined in
-the \\\texttt{org.eclipse.photran.ui.vpg} plug-in.
-
-At run-time, Photran \emph{dynamically} instantiates a suitable
-\texttt{SourceViewerConfiguration} by searching through the list of plug-ins
-that extend the \texttt{org.eclipse.photran.ui.sourceViewerConfig} extension.
-
-Currently, there are \textbf{two} \texttt{SourceViewerConfiguration}s in
-Photran: the contributed \texttt{FortranVPGSourceViewerConfigurationFactory} and
-the default (but less feature-full)
-\texttt{FortranModelReconcilingSourceViewerConfiguration}.
-
-\section{Fortran Editor Tasks: VPG \& AST Tasks}
-
-Many actions that a user can invoke actually depend on the current text in the
-text editor. For instance, auto-completion depends on the text that has been
-entered so far to provide feasible completion choices. A good auto-completion
-strategy constantly augments and updates its database of feasible completion
-choices as the user enters or modifies text; it does not have to wait until the
-user saves the current file.
-
-Another important feature of the text editor that requires constant updates is
-syntax highlighting. Syntax highlighting has to work almost instantaneously
-based on what the user has entered. It is not acceptable for the user to
-experience lengthy delays between typing a character and waiting for it to
-syntax highlight correctly.
-
-Eclipse utilizes a \emph{reconciler} to correctly and instantly perform syntax
-highlighting. The reconciler runs in a background thread in Eclipse, constantly
-monitoring the text that the user enters and updating the syntax highlighting as
-necessary. Every text editor in Eclipse -- including Photran's -- has a
-corresponding reconciler.
-
-Photran takes advantage of its existing reconciler
-(\texttt{FortranVPGReconcilingStrategy}) and adds additional Fortran editor
-tasks that should run each time its reconciler runs. The list of tasks to run is
-stored in the singleton \texttt{FortranEditorTasks} object.
-
-Currently, there are two kinds of tasks that can be run: Abstract Syntax Tree
-(AST) editor tasks and Virtual Program Graph(VPG) editor tasks. AST editor tasks
-depend on information from the AST of the current source file; and VPG editor
-tasks depend on information from the VPG of the current source file.
-\texttt{FortranEditorTasks} automatically schedules the VPG editor tasks using
-an instance of \texttt{VPGSchedulingRule} to synchronize access to the
-\texttt{PhotranVPG} singleton object. The AST of the current file is computed
-on-the-fly as the user modifies the source file. The VPG of the current file is
-based off its previous saved version (so it is less up-to-date). For more
-information about the AST and VPG, see Chapter~\ref{cha:parsing}.
-
-AST editor tasks must implement the \texttt{IFortranEditorASTTask} interface and
-VPG editor tasks must implement the \texttt{IFortranEditorVPGTask} interface.
-Additionally, each task has to register itself with the
-\texttt{FortranEditorTasks} object. A task that no longer needs to run should
-also be unregistered. Since these tasks run asynchronously, it is important to
-use proper Java concurrency practices i.e. \textbf{synchronized} methods and statements.
-
-\pagebreak
-
-Below is the API of the \texttt{FortranEditorTasks} class:
-
-\begin{code}
-\begin{lstlisting}
-public class FortranEditorTasks
-{
- public static FortranEditorTasks instance(AbstractFortranEditor editor)
-
- public synchronized void addASTTask(IFortranEditorASTTask task)
-
- public synchronized void addVPGTask(IFortranEditorVPGTask task)
-
- public synchronized void removeASTTask(IFortranEditorASTTask task)
-
- public synchronized void removeVPGTask(IFortranEditorVPGTask task)
-
- public Runner getRunner()
-
- ...
-}
-\end{lstlisting}
-\caption{API of \texttt{FortranEditorTasks} (see FortranEditorTasks.java)}
-\end{code}
-
-It is possible for a class to implement both the \texttt{IFortranEditorASTTask}
-and \texttt{IFortranEditorVPGTask} interfaces. For example, the
-\texttt{DeclarationView} class registers itself for both kinds of editor tasks
-and makes use of the information from both as it attempts to present the
-declaration for the currently selected token of the text editor.
-
-For more information on implementation details, please refer to the following
-classes:
-
-\begin{itemize}
- \item \texttt{DeclarationView}
- \item \texttt{FortranCompletionProcessorASTTask}
- \item \texttt{FortranCompletionProcessorVPGTask}
- \item \texttt{OpenDeclarationASTTask}
-\end{itemize}
diff --git a/org.eclipse.photran-dev-docs/dev-guide/find-pdflatex.sh b/org.eclipse.photran-dev-docs/dev-guide/find-pdflatex.sh
deleted file mode 100755
index 2b0ea6b..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/find-pdflatex.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-RESULT=`which pdflatex 2>/dev/null | grep -v "no pdflatex in"`
-if [ "$RESULT" == "" ]; then
- OS=`uname -s`
- if [ "$OS" == "Darwin" ]; then
- HARDWARE=`uname -m`
- if [ "$HARDWARE" == "i386" ]; then
- RESULT=`find /usr/local/texlive -name pdflatex | grep i386`
- else
- RESULT=`find /usr/local/texlive -name pdflatex | grep ower`
- fi
- else
- RESULT=`find /usr/local/tex* -name pdflatex | head -1`
- fi
-fi
-if [ "$RESULT" == "" ]; then
- exit 1
-else
- echo $RESULT
- exit 0
-fi
diff --git a/org.eclipse.photran-dev-docs/dev-guide/images/diagrams/editor_hierarchy.graffle b/org.eclipse.photran-dev-docs/dev-guide/images/diagrams/editor_hierarchy.graffle
deleted file mode 100644
index 4847a60..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/images/diagrams/editor_hierarchy.graffle
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.photran-dev-docs/dev-guide/images/diagrams/parser_chain.graffle b/org.eclipse.photran-dev-docs/dev-guide/images/diagrams/parser_chain.graffle
deleted file mode 100644
index 5c40720..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/images/diagrams/parser_chain.graffle
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.photran-dev-docs/dev-guide/images/editor_hierarchy.png b/org.eclipse.photran-dev-docs/dev-guide/images/editor_hierarchy.png
deleted file mode 100644
index 22fce3a..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/images/editor_hierarchy.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.photran-dev-docs/dev-guide/images/parser_chain.png b/org.eclipse.photran-dev-docs/dev-guide/images/parser_chain.png
deleted file mode 100644
index d70d8aa..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/images/parser_chain.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.photran-dev-docs/dev-guide/images/parsetree1.png b/org.eclipse.photran-dev-docs/dev-guide/images/parsetree1.png
deleted file mode 100644
index 3fef6fc..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/images/parsetree1.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.photran-dev-docs/dev-guide/images/simple_fortran_AST.png b/org.eclipse.photran-dev-docs/dev-guide/images/simple_fortran_AST.png
deleted file mode 100644
index ede9655..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/images/simple_fortran_AST.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.photran-dev-docs/dev-guide/intro.ltx-inc b/org.eclipse.photran-dev-docs/dev-guide/intro.ltx-inc
deleted file mode 100644
index 36320f2..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/intro.ltx-inc
+++ /dev/null
@@ -1,50 +0,0 @@
-% Introduction
-\vspace{-0.5in}
-
-Photran is an IDE for Fortran 77, 90, 95, and 2003 that is built on top of
-Eclipse. It is structured as an Eclipse feature, in other words, as a set of
-plug-ins that are designed to be used together. Starting with version 3.0, it is
-an extension of C/C++ Development Tools (CDT), the Eclipse IDE for C/C++.
-Previous versions of Photran were created by hacking a copy of CDT to support
-Fortran instead of C/C++, but now we have developed a mechanism for adding new
-languages into CDT, allowing the Fortran support code to be in its own set of
-plug-ins.
-
-Our purpose in writing Photran was to create a refactoring tool for Fortran.
-Thus, Photran has a complete parser and program representation. Photran also
-adds a Fortran editor and several preference pages to the CDT user interface,
-as well as Fortran-specific project wizards and support for several Fortran
-compilers.
-
-Photran is part of the Parallel Tools Platform (PTP) project at the
-Eclipse Foundation, which provides the Web site, CVS repository, and
-Bugzilla repository. The Web site is
-\href{http://www.eclipse.org/photran}{http://www.eclipse.org/photran},
-and bugs can be submitted at
-\href{https://bugs.eclipse.org}{https://bugs.eclipse.org}
-under Tools $>$ PTP by selecting one of the ``Photran'' components.
-
-
-\vspace{-0.2in}
-
-\section{How To Read This Guide}
-
-This document explains the design of Photran so that interested contributors
-could fix a bug or add a refactoring. Contributors should know how to use
-Photran; user's guides and introductory tutorials are available from the
-\href{http://www.eclipse.org/photran/documentation.php}{\emph{Documentation}}
-section of Photran's website. Contributors also need to understand how to build
-Eclipse plug-ins before they read this document. Two good books on Eclipse
-plug-in development are
-\href{http://www.amazon.com/Eclipse-Building-Commercial-Quality-Plug-Ins/dp/0321228472}{\emph{Building
-Commercial-Quality Plug-ins}} and
-\href{http://www.amazon.com/Java-Developers-Guide-Eclipse-2nd/dp/0321305027/}{\emph{The
-Java Developer's Guide to Eclipse.}} Like almost all Eclipse plug-ins, Photran
-is written in Java, so knowing Java is also a prerequisite.
-
-This is a \emph{duplex} guide. The main chapters provide general descriptions of
-the various components and how they interact. The appendix describes concrete
-examples from Photran so that contributors can familiarize themselves with
-actual code and implementation details. This guide complements the source code
-in the repository; it is \underline{not a substitute} for reading the actual
-source code.
\ No newline at end of file
diff --git a/org.eclipse.photran-dev-docs/dev-guide/parsing.ltx-inc b/org.eclipse.photran-dev-docs/dev-guide/parsing.ltx-inc
deleted file mode 100644
index a02a085..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/parsing.ltx-inc
+++ /dev/null
@@ -1,672 +0,0 @@
-% Parsing and Program Analysis
-
-\section{Parsing}
-
-Before any program analysis can be done, the source code of the Fortran program
-has to be parsed. Photran provides support for both fixed-form (Fortran 77) and
-free-form Fortran (Fortran 90 \& 95) source code. The parser in Photran is
-generated using the Ludwig parser/AST generator by Jeff Overbey. It is based on
-the \emph{fortran2003.bnf} grammar file.
-
-Figure~\ref{fig:images_parser_chain} shows the lexer \& parser tool chain in
-Photran. Preliminary support for (\texttt{INCLUDE} directives) has also been
-implemented.
-
-\begin{image}
- \centering
- \includegraphics[height=3in]{images/parser_chain.png}
- \caption{Photran preprocessor/lexer/parser chain}
- \label{fig:images_parser_chain}
-\end{image}
-
-\section{Virtual Program Graph}
-\label{sec:virtual_program_graph}
-
-% I can't seem to get the cedilla fa\c{c}ade to render in my version of LaTeX
-In Photran, it is \emph{almost} never necessary to call the lexer, parser, or
-analysis components directly. Instead, Photran uses a \textbf{virtual program
-graph} (VPG), which provides the facade of a whole-program abstract syntax tree
-(AST) with embedded analysis information. In general, program analysis should be
-performed through the Photran VPG.
-
-An overview of VPGs is available at the following link:
-\url{http://jeff.over.bz/software/vpg/doc/}. It provides the background
-necessary for the remaining sections of this chapter.
-
-\subsection{Using the Photran VPG}
-
-\subsubsection{Acquiring and Releasing Translation Units}
-% TODO Make sure that this fits nicely into the page
-\texttt{PhotranVPG} is a \emph{singleton} object responsible for constructing
-ASTs for Fortran source code. ASTs are retrieved by invoking either of these
-methods:
-\begin{code}
-\begin{lstlisting}[numbers=none]
-public IFortranAST acquireTransientAST(IFile file)
-
-public IFortranAST acquirePermanentAST(IFile file)
-\end{lstlisting}
-\caption{Acquiring the Fortran AST}
-\end{code}
-
-\vspace{-0.15in}
-
-The returned object is an IFortranAST, an object which has a method for
-returning the root node of the AST as well as methods to quickly locate tokens
-in the AST by offset or line information. A \emph{transient AST} can be garbage
-collected as soon as references to any of its nodes disappear. A \emph{permanent
-AST} will be explicitly kept in memory until a call is made to either of the
-following methods:
-\begin{code}
-\begin{lstlisting}[numbers=none]
-public void releaseAST(IFile file)
-
-public void releaseAllASTs()
-\end{lstlisting}
-\caption{Releasing the Fortran AST}
-\end{code}
-
-Often, it is better to acquire a transient AST and rely on the garbage collector
-to reclaim the memory once we are done using it. However, there are times when
-acquiring a permanent AST would be more beneficial performance-wise. For
-instance, if we will be using the same AST multiple times during a refactoring,
-it would be better to just acquire a permanent AST. This prevents the garbage
-collector from reclaiming the memory midway through the refactoring once all
-references to the AST have been invalidated. While it is always possible to
-reacquire the same AST, doing so can be an expensive operation since it requires
-\emph{lexing}, \emph{parsing} \textbf{and} finally \emph{reconstructing} the AST
-from scratch.
-
-Only one AST for a particular file is in memory at any particular point in time,
-so successive requests for the same \texttt{IFile} will return the same
-(pointer-identical) AST until the AST is released (permanent) or garbage
-collected (transient).
-
-\subsubsection{Caveat}
-
-It is important to note that, because \texttt{PhotranVPG} is a singleton object,
-one must be careful about accessing it from multiple threads. Most of the time,
-when an AST is required, it will be from an action contributed to the Fortran
-editor; in this case, the action will usually be a descendant of
-\texttt{FortranEditorActionDelegate}, and synchronization will be handled
-automatically. For instance, all refactoring actions in Photran are descendants
-of \texttt{FortranEditorActionDelegate} and their accesses to
-\texttt{PhotranVPG} are being synchronized automatically.
-
-Otherwise, the thread must either be scheduled using a
-\texttt{VPGSchedulingRule} or it must lock the entire workspace . See
-\texttt{EclipseVPG\#queueJobToEnsureVPGIsUpToDate} as an example on how to use
-the \texttt{VPGSchedulingRule} and \texttt{FortranEditorActionDelegate\#run} as
-an example of how to lock the entire workspace.
-
-As a guideline, contributors who are interested in accessing the VPG should
-consider structuring their contributions as descendants of
-\texttt{FortranEditorActionDelegate} since that is the simplest mechanism (all
-synchronization is already taken care of automatically). However, if such an
-approach is not feasible, then they should consider using
-\texttt{VPGSchedulingRule} before resorting to locking the entire workspace.
-
-\subsection{The Program Representation: IFortranAST}
-
-The \texttt{acquireTransientAST} and \texttt{acquirePermanentAST} methods return
-an object implementing \texttt{IFortranAST}. Listing~\ref{lst:ifortranast} shows
-the methods in IFortranAST.
-
-\begin{code}
-\begin{lstlisting}[firstnumber=25]
-public interface IFortranAST extends Iterable<Token>
-{
- ///////////////////////////////////////////////////////////////////////////
- // Visitor Support
- ///////////////////////////////////////////////////////////////////////////
-
- public void accept(IASTVisitor visitor);
-
- ///////////////////////////////////////////////////////////////////////////
- // Other Methods
- ///////////////////////////////////////////////////////////////////////////
-
- public ASTExecutableProgramNode getRoot();
-
- public Iterator<Token> iterator();
- public Token findTokenByStreamOffsetLength(int offset, int length);
- public Token findFirstTokenOnLine(int line);
- public Token findTokenByFileOffsetLength(IFile file, int offset, int length);
-}
-\end{lstlisting}
-\caption{\texttt{IFortranAST} (see IFortranAST.java)}
-\label{lst:ifortranast}
-\end{code}
-
-The \texttt{getRoot} method returns the root of the AST, while the
-\texttt{find...} methods provide efficient means to search for tokens based
-on their lexical positioning in the source code.
-
-The \texttt{accept} method allows an external visitor to traverse the AST. This
-method is usually used when it is necessary to ``collect'' information about
-certain nodes. For more information see Section~\ref{sec:ast_structure} on what
-nodes can be visited.
-
-Because \texttt{IFortranAST} extends the \texttt{Iterable} interface, it is
-possible to use the \emph{foreach} loop to conveniently iterate through all the
-tokens in the AST e.g. \\ \lstinline!for (Token token : new IterableWrapper<Token>(ast))!
-
-\section{AST Structure}
-\label{sec:ast_structure}
-
-Photran's (rewritable) AST is generated along with the parser, so the structure
-of an AST is determined by the structure of the parsing grammar (see the
-\emph{fortran2003.bnf} file). The generated classes are located in the
-\texttt{org.eclipse.photran.internal.core.parser} package in the
-\texttt{org.eclipse.photran.core.vpg} project. The easiest way to visualize the
-structure of a particular file's AST is to view it in the Outline view (see
-Section~\ref{sec:how_to_get_acquainted_with_the_program_representation}).
-However determining all possible ASTs for a particular construct requires
-scrutinizing the parsing grammar file.
-
-\subsection{Ordinary AST Nodes}
-\label{sub:ordinary_ast_nodes}
-
-Generally speaking, there is one AST node for each nonterminal in the grammar
-and one accessor method for each symbol on its right-hand side (unless the
-symbol name is prefixed with a hyphen, in which case it is omitted). For
-example, the following specification\footnote{All grammar
-specifications are taken from the \emph{fortran2003.bnf} file. The \# RXXX number
-provides a reference to the actual specification in the grammar file.}
-
-{\footnotesize\begin{verbatim}
-# R533
-<DataStmtSet> ::= <DataStmtObjectList> -:T_SLASH <DataStmtValueList> -:T_SLASH
-\end{verbatim}}
-
-generates the AST node class \texttt{ASTDataStmtSetNode} shown in
-Listing~\ref{lst:astdatastmtsetnode_api}. Notice the \emph{presence} of the
-\texttt{getDataStmtObjectList} and \texttt{getDataStmtValueList} getters methods
-and the \emph{absence} of any method for accessing T\_SLASH.
-
-\shabox{The convention is to generate a class with the name
-\texttt{\color{LightMagenta}AST}$<$nonterminal
-name$>$\texttt{\color{LightMagenta}Node} that extends \texttt{ASTNode}. For
-instance \# R533 will generate the
-\texttt{{\color{LightMagenta}AST}DataStmtSet{\color{LightMagenta}Node}} class.}
-
-The following sections describe additional annotations that can be used to
-modify the standard convention when necessary. These annotations are not
-considered part of the standard BNF notation but they are supported by the
-underlying Ludwig parser generator.
-
-\begin{code}
-\begin{lstlisting}
-public class ASTDataStmtSetNode extends ASTNode
-{
- public IASTListNode<IDataStmtObject> getDataStmtObjectList() {...}
-
- public void setDataStmtObjectList(IASTListNode<IDataStmtObject> newValue) {...}
-
- public IASTListNode<ASTDataStmtValueNode> getDataStmtValueList() {...}
-
- public void setDataStmtValueList(IASTListNode<ASTDataStmtValueNode> newValue) {...}
-
- ...
-}
-\end{lstlisting}
-\caption{\texttt{ASTDataStmtSetNode} generated from \# R533}
-\label{lst:astdatastmtsetnode_api}
-\end{code}
-
-\subsubsection{Annotation \#1: \texttt{(list)}}
-
-Recursive productions are treated specially, since they are used frequently to
-express lists in the grammar. The recursive member is labeled in the grammar
-with the \texttt{(list)} annotation. For example, the following specification
-
-{\footnotesize\begin{verbatim}
-# R538
-(list):<DataStmtValueList> ::=
- | <DataStmtValue>
- | <DataStmtValueList> -:T_COMMA <DataStmtValue>
-\end{verbatim}}
-
-means that the AST will contain an object of type
-\texttt{List$<$ASTDataStmtValueNode$>$} whenever a \verb!<DataStmtValueList>!
-appears in the grammar. For instance, \# R533 (just described in the previous
-section) uses the \texttt{DataStmtValueList} construct. Notice in
-Listing~\ref{lst:astdatastmtsetnode_api} that the return type of
-\texttt{getDataStmtValueList} is a \texttt{List}.
-
-Putting an object that implements the \texttt{java.util.List} into the tree
-(rather than having a chain of nodes) makes it easier to iterate through the
-list, determine its size and insert new child nodes.
-
-\subsubsection{Annotation \#2: \texttt{(superclass)}}
-
-The \texttt{(superclass)} annotation is used to create an interface that is
-implemented by all symbols on the right-hand side of the specification will
-implement. For example, the following specifications
-
-{\footnotesize\begin{verbatim}
-# R207
-(superclass):<DeclarationConstruct> ::=
- | <DerivedTypeDef>
- | <InterfaceBlock>
- | <TypeDeclarationStmt>
- | <SpecificationStmt>
-
-...
-
-# R214
-(superclass):<SpecificationStmt> ::=
- | <AccessStmt>
- | <AllocatableStmt>
- | <CommonStmt>
- | <DataStmt>
- | <DimensionStmt>
- | <EquivalenceStmt>
- | <ExternalStmt>
- | <IntentStmt>
- | <IntrinsicStmt>
- | <NamelistStmt>
- | <OptionalStmt>
- | <PointerStmt>
- | <SaveStmt>
- | <TargetStmt>
- | <UnprocessedIncludeStmt>
-\end{verbatim}}
-
-mean that an \textbf{interface} -- not a class -- named
-\texttt{ISpecificationStmt} will be generated for \# R214, and
-\texttt{ASTAccessStmtNode}, \texttt{ASTAllocatableStmtNode},
-\texttt{ASTCommonStmtNode}, etc will implement that interface. In addition,
-because \verb!<SpecificationStmt>! is used inside \# R207 which also uses the
-\texttt{(superclass):} annotation, \texttt{ISpecificationStmt} also extends the
-\texttt{IDeclarationConstruct} interface from \# R207 i.e.
-
-\begin{lstlisting}[numbers=none]
- public interface ISpecificationStmt extends IASTNode, IDeclarationConstruct
-\end{lstlisting}
-
-So, it is possible for an AST node to implement multiple interfaces based on the
-specifications in the grammar.
-
-Using the \texttt{(superclass)} annotation gives those nonterminals in \# R214
-nodes a common type; most notably, a \texttt{Visitor} can override the
-\texttt{visit(ISpecificationStmt)} method to treat all three node types
-uniformly.
-
-\subsubsection{Annotation \#3: \texttt{(bool)}}
-
-The \texttt{(bool)} annotation indicates that an accessor method will return a
-\lstinline!boolean! rather than an actual AST node. For example, the following
-specification
-
-{\footnotesize\begin{verbatim}
-# R511
-<AccessSpec> ::=
- | isPublic(bool):T_PUBLIC
- | isPrivate(bool):T_PRIVATE
-\end{verbatim}}
-
-will generate the \texttt{ASTAccessSpecNode} class as shown in Listing~\ref{lst:astaccessspecnode_api}.
-
-\begin{code}
-\begin{lstlisting}
-public class ASTAccessSpecNode extends ASTNode
-{
- // in ASTAccessSpecNode
- Token isPrivate;
- // in ASTAccessSpecNode
- Token isPublic;
-
- public boolean isPrivate() {...}
-
- public void setIsPrivate(Token newValue) {...}
-
- public boolean isPublic() {...}
-
- public void setIsPublic(Token newValue) {...}
-
- ...
-}
-\end{lstlisting}
-\caption{ASTAccessSpecNode generated from \# R511}
-\label{lst:astaccessspecnode_api}
-\end{code}
-Notice on lines 8 \& 12 that the methods return \lstinline!boolean! values
-instead of \texttt{ASTNode}s. The \lstinline!boolean! values are usually used to
-test the presence of that particular \texttt{ASTNode} in the source code.
-
-\subsubsection{Annotation \#4: Labels}
-
-Specification \# R511 also illustrates the use of \emph{labels} in the grammar
-file: \verb!isPublic(bool):T_PUBLIC! results in a method called
-\texttt{isPublic} instead of \verb!getT_PUBLIC!. The use of labels can greatly
-enhance the readability of the program by making its intent clearer.
-
-\subsubsection{Annotation \#5: \texttt{(inline)}}
-
-Consider the following specifications for a main program in Fortran:
-
-{\footnotesize\begin{verbatim}
-# R1101
-<MainProgram> ::=
- | <MainRange>
- | <ProgramStmt> <MainRange>
-
-<MainRange> ::=
- | <Body> <EndProgramStmt>
- | <BodyPlusInternals> <EndProgramStmt>
- |
-\end{verbatim}}
-
-From the standpoint of a typical Fortran programmer, a main program consists of
-a Program statement, a body (list of statements), perhaps some internal
-subprograms, and an End Program statement. This does not match the definition of
-a \verb!<MainProgram>! in the parsing grammar above: \verb!<Body>! and
-\verb!<EndProgStmt>! are relegated to a separate \verb!<MainRange>! nonterminal.
-
-The solution is to label the MainRange nonterminal with the \texttt{(inline)} annotation, indicating that it is to be in-lined:
-
-{\footnotesize\begin{verbatim}
-# R1101
-(customsuperclass=ScopingNode):<MainProgram> ::=
- | (inline):<MainRange>
- | <ProgramStmt> (inline):<MainRange>
-
-<MainRange> ::=
- | <Body> <EndProgramStmt>
- | (inline):<BodyPlusInternals> <EndProgramStmt>
- |
-\end{verbatim}}
-
-This means that accessor methods that would otherwise be in a separate
-\texttt{ASTMainRangeNode} class will be placed in the
-\texttt{ASTMainProgramNode} class instead.
-Listing~\ref{lst:astmainprogramnode_api} shows that the accessors that were
-previously in \texttt{ASTMainRangeNode} have been in-lined to
-\texttt{ASTMainProgramNode}. Now there is no longer any need for a
-\texttt{ASTMainRangeNode} class.
-
-\begin{code}
-\begin{lstlisting}
-public class ASTMainProgramNode extends ScopingNode implements IProgramUnit
-{
- public ASTProgramStmtNode getProgramStmt()
-
- public void setProgramStmt(ASTProgramStmtNode newValue)
-
- public IASTListNode<IBodyConstruct> getBody()
-
- public void setBody(IASTListNode<IBodyConstruct> newValue)
-
- public ASTContainsStmtNode getContainsStmt()
-
- public void setContainsStmt(ASTContainsStmtNode newValue)
-
- public IASTListNode<IInternalSubprogram> getInternalSubprograms()
-
- public void setInternalSubprograms(IASTListNode<IInternalSubprogram> newValue)
-
- public ASTEndProgramStmtNode getEndProgramStmt()
-
- public void setEndProgramStmt(ASTEndProgramStmtNode newValue)
-
- ...
-}
-\end{lstlisting}
-\caption{\texttt{ASTMainProgramNode} generated from \# R1101}
-\label{lst:astmainprogramnode_api}
-\end{code}
-
-\subsubsection{Annotation \#6: \texttt{(customsuperclass=*)}}
-
-Specification \# R1101 in the previous section also illustrates the use of the
-\\ \texttt{(customsuperclass=ScopingNode)} annotation. This makes
-\texttt{ScopingNode} the parent of the \texttt{ASTMainProgramNode} class. Note
-that \texttt{ScopingNode} (or whichever custom super class is chosen) has to be
-a descendant of \texttt{ASTNode} because every node in the AST has to be of that
-type (either directly or as a descendant).
-
-The \texttt{(customsuperclass=*)} annotation is a useful technique for
-delegating external methods that cannot be expressed through the grammar BNF
-file into a separate hand-coded class while still having the benefits of an
-auto-generated parser and AST.
-
-\subsection{Tokens}
-\label{sub:tokens}
-
-\texttt{Token}s form the leaves of the AST. They record, among other things,
-
-\begin{itemize}
-\item The terminal symbol in the grammar that the token is an instance of (\texttt{getTerminal()})
-\item The actual text of the token (\texttt{getText()})
-\item The line, column, offset, and length of the token text in the source file (\texttt{getLine(), getCol(), getFileOffset(), getLength()})
-\end{itemize}
-
-Most of the remaining fields are used internally for refactoring.
-
-\subsection{Fortran Program AST Example}
-
-The previous sections describe the conventions and additional annotations that
-are used to construct the AST nodes. While the conventions and annotations
-themselves are simple, the Fortran grammar is extremely complicated and contains
-hundreds of rules. Even the simplest Fortran program might contain a very
-complicated AST. For instance this simple Fortran program: \\
-
-\begin{lstlisting}[language=Fortran, frame=lines]
-program main
- integer a
-end
-\end{lstlisting}
-
-generates the AST shown in Figure~\ref{fig:simple_fortran_ast}. As an exercise,
-the reader is encouraged to derive the structure of the AST from the grammar
-specifications in the \emph{fortran2003.bnf} file beginning with \# R201,
-\verb!<ExecutableProgram>!.
-
-%Moreover, modifying our previous program slightly to contain an array as shown
-%below, causes the AST structure to become extremely complicated. The reader is
-%encouraged to create a file containing this program and view the resulting AST
-%in the Outline View in Photran. Notice how the \verb!(5)! expression for
-%specifying the dimension of the array requires building up an entire hierarchy
-%of \texttt{ASTLevel5ExprNode}, \texttt{ASTLevel4ExprNode},
-%\texttt{ASTLevel3ExprNode}, \ldots \\
-%
-%\begin{lstlisting}[language=Fortran, frame=lines]
-%program main
-% integer a(5) ! This declares an array of 5 integers
-%end
-%\end{lstlisting}
-
-
-\begin{image}
- \centering
- \includegraphics[height=4in]{images/simple_fortran_AST.png}
- \caption{AST for simple Fortran program as viewed through the Outline View}
- \label{fig:simple_fortran_ast}
-\end{image}
-
-Fortunately, it is not necessary to know every specification in the grammar. For
-most refactoring and program analysis tasks, it is sufficient to rely on the
-information that the VPG provides. If that is insufficient, then it is usually
-enough to construct a Visitor to visit \emph{only} the nodes of interest and
-``collect'' the information that is required.
-
-\section{AST Structure for DO-Loops}
-
-Due to a deficiency in the parser, DO-constructs are not recognized as a single
-construct; DO and END DO statements are recognized as ordinary statements
-alongside the statements comprising their body. There is a package in the
-core.vpg plug-in called org.eclipse.photran.internal.core.analysis.loops which
-provides machinery to fix this, giving DO-loops a ``proper'' AST structure.
-
-If you call \texttt{LoopReplacer.replaceAllLoopsIn(ast)}, it will identify all
-of the new-style DO-loops and change them to \texttt{ASTProperLoopConstructNode}s,
-which a more natural structure, with a loop header, body, and END DO statement.
-Once this is done, visitors must be implemented by subclassing one of the
-Visitor classes \emph{in the org.eclipse.photran.internal.core.analysis.loops
-package;} these have a callback method to handle
-\texttt{ASTProperLoopConstructNode}s.
-
-\section{Scope and Binding Analysis}
-
-Currently, the only semantic analysis performed by Photran is binding analysis:
-mapping \emph{identifiers} to their \emph{declarations}. Compilers usually do
-this using symbol tables but Photran uses a more IDE/refactoring-based approach.
-
-Certain nodes in a Fortran AST represent a lexical scope. All of these nodes are
-declared as subclasses of \texttt{ScopingNode}:
-
-\begin{itemize}
-\item ASTBlockDataSubprogramNode
-\item ASTDerivedTypeDefNode
-\item ASTExecutableProgramNode
-\item ASTFunctionSubprogramNode
-\item ASTInterfaceBlockNode\footnote{An interface block defines a nested scope only if it is a named interface.Anonymous (unnamed) interfaces provide signatures for subprograms in their enclosing scope.}
-\item ASTMainProgramNode
-\item ASTModuleNode
-\item ASTSubroutineSubprogramNode
-\end{itemize}
-
-Each of the subclasses of \texttt{ScopingNode} represents a scoping unit in
-Fortran. The \texttt{ScopingNode} class has several public methods that provide
-information about a scope. For example, one can retrieve a list of all of the
-symbols declared in that scope; retrieve information about its
-\texttt{IMPLICIT} specification; find its header statement (e.g. a
-\texttt{FUNCTION} or \texttt{PROGRAM} statement); and so forth.
-
-The enclosing scope of a \texttt{Token} can be retrieved by calling the
-following method on the \texttt{Token} object:
-
-\begin{lstlisting}[numbers=none]
-public ScopingNode getEnclosingScope()
-\end{lstlisting}
-
-Identifier tokens (\texttt{Token}s for which \texttt{token.getTerminal() ==
-Terminal.T\_IDENT}), which represent functions, variables, etc. in the Fortran
-grammar, are \emph{bound} to a declaration\footnote{The introduction to VPGs
-earlier in this chapter (URL above) provides an example visually.}. Although,
-ideally, every identifier will be bound to exactly one declaration, this is not
-always the case: the programmer may have written incorrect code, or Photran may
-not have enough information to resolve the binding uniquely). So the
-\texttt{resolveBinding} method returns a \emph{list} of \texttt{Definition}
-objects:
-
-\begin{lstlisting}[numbers=none]
-public List<Definition> resolveBinding()
-\end{lstlisting}
-
-A \texttt{Definition} object contains many public methods which provide a wealth
-of information. From a \texttt{Definition} object, it is possible to get a list
-of all the references to a particular declaration (using
-\texttt{findAllReferences}) and where that particular declaration is located in
-the source code (using \texttt{getTokenRef}). Both of these methods return a
-\texttt{PhotranTokenRef} object. See Section~\ref{sub:token_or_tokenref} for a
-comparison between \texttt{Token} and \texttt{TokenRef}.
-
-\subsection{Examples of Binding Analysis}
-
-\subsubsection{Obtaining the \texttt{Definition} of a variable}
-
-If you have a reference to the \texttt{Token} object of that variable (for
-instance through iterating over all \texttt{Tokens} in the current Fortran AST)
-then use:
-
-\begin{lstlisting}[numbers=none, frame=lines]
-// myToken is the reference to that variable
-List<Definition> bindings = myToken.resolveBinding();
-
-if(bindings.size() == 0)
- throw new Exception(myToken.getText() + " is not declared");
-else if (bindings.size() > 1)
- throw new Exception(myToken.getText() + " is an ambiguous reference");
-
-Definition definition = bindings.get(0);
-\end{lstlisting}
-
-If you do \textbf{not} have a reference to a \texttt{Token} but you know the
-name of the identifier, you can first construct a \emph{hypothetical}
-\texttt{Token} representing an identifier and search for that in a
-\emph{particular} \texttt{ScopingNode} (possibly obtained by calling the static
-method \texttt{ScopingNode.getEnclosingScope(IASTNode node)}).
-\\
-
-\begin{lstlisting}[numbers=none, frame=lines]
-Token myToken = new Token(Terminal.T_IDENT, "myNameOfIdentifier");
-List<PhotranTokenRef> definitions = myScopingNode.manuallyResolve(myToken);
-\end{lstlisting}
-
-If you want to search for the identifier in \textbf{all} \texttt{ScopingNodes}
-for the current source file, then retrieve all the \texttt{ScopingNodes} and
-manually iterate through each one. Remember that the root of the AST is a
-\texttt{ScopingNode} and you may obtain the root of the AST through the
-\texttt{getRoot} method declared in \texttt{IFortranAST}.
-\\
-
-\begin{lstlisting}[numbers=none, frame=lines]
-List<ScopingNode> scopes = myRoot.getAllContainedScopes();
-
-for (ScopingNode scopingNode : scopes)
-{
- // search through each ScopingNode
-}
-\end{lstlisting}
-
-\subsubsection{Examples in \texttt{FortranEditorASTActionDelegate} subclasses}
-
-The following subclasses of \texttt{FortranEditorASTActionDelegate} all contain short working examples of how to use the binding analysis API in Photran:
-\begin{itemize}
- \item DisplaySymbolTable
- \item FindAllDeclarationsInScope
- \item OpenDeclaration
- \item SelectEnclosingScope
-\end{itemize}
-
-\section{How to Get Acquainted with the Program Representation}
-\label{sec:how_to_get_acquainted_with_the_program_representation}
-
-\emph{All these features work on \textbf{Fortran projects}. A new Fortran
-project can be created via File $>$ New $>$ Project\dots $>$ Fortran $>$ Fortran Project. These
-features do not work on individual Fortran source files.}
-
-\subsection{Visualizing ASTs}
-
-Photran can display ASTs in place of the ordinary Outline view.
-This behavior can be enabled from the Fortran workspace preferences:
-
-\begin{itemize}
- \item Click on Window $>$ Preferences in Windows/Linux, or Eclipse $>$ Preferences in Mac OS X.
- \item Select ``Fortran'' on the left hand side of the preference dialog (do not expand it).
- \item Select ``(Debugging) Show entire parse tree rather than Outline view''
-\end{itemize}
-
-Clicking on an AST \texttt{node}Token in the Outline view will move the cursor
-to that construct's position in the source file.
-
-\subsection{Visually Resolving Bindings}
-
-This feature is disabled by default since it requires performing an update on
-the VPG database each time the file is saved -- an operation that could be
-expensive for larger files. To enable this feature, right-click on the current
-Fortran project folder (\textbf{not} the individual Fortran source file) in the
-Fortran Projects View and select ``Properties''. In the dialog that pops-up,
-navigate to Fortran General $>$ Analysis/Refactoring. Select the ``Enable
-Fortran Declaration view'' checkbox.
-
-Then, in a Fortran editor, click on an identifier (position the cursor over
-it), and press F3 (or click Navigate $>$ Open Declaration, or right-click and
-choose Open Declaration.) The binding will be resolved and the declaration
-highlighted. If there are multiple bindings, a pop-up window will open and one
-can be selected. If the identifier is bound to a declaration in a module defined
-in a different file, an editor will be opened on that file.
-
-\subsection{Visualizing Enclosing Scopes}
-
-Click on any token in the Fortran editor, and click Refactor $>$ (Debugging) $>$
-Select Enclosing Scope. The entire range of source text for that token's
-enclosing \texttt{ScopingNode} will be highlighted.
-
-\subsection{Visualizing Definitions}
-
-Open a file in the Fortran editor, and click Refactor $>$ (Debugging) $>$
-Display Symbol Table for Current File. Indentation shows scope nesting, and each
-line summarizes the information in a \texttt{Definition} object.
diff --git a/org.eclipse.photran-dev-docs/dev-guide/plugins.ltx-inc b/org.eclipse.photran-dev-docs/dev-guide/plugins.ltx-inc
deleted file mode 100644
index 70b7198..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/plugins.ltx-inc
+++ /dev/null
@@ -1,164 +0,0 @@
-% Plug-in Decomposition
-\section{Introduction}
-
-This chapter presents a high-level overview of the different projects and
-plug-ins in Photran. It serves as a guide for developers reverse-engineering
-Photran to \emph{guess-and-locate} where certain components are. It also serves
-as a guide for contributers on \emph{where} to put their contributions.
-
-The following sections are grouped by feature. A feature is a collection of
-related Eclipse plug-ins that the user can install as a whole.
-
-\section{Base Photran Feature: \\org.eclipse.photran-feature}
-
-The following projects comprise the ``base'' of Photran.
-
-\begin{itemize}
-
-\item \textbf{org.eclipse.photran.cdtinterface}
-
-This contains most of the components (core and user interface) related
-to integration with the CDT. It includes:
-\begin{itemize}
-\item The FortranLanguage class, which adds Fortran to the list of languages
- recognized by CDT
-\item Fortran model elements and icons for the Outline and Fortran Projects views
-\item An extension point for contributing Fortran model builders, and a
- simple lexical analyzer-based model builder (which, generally speaking,
- is not used)
-\item The Fortran perspective, Fortran Projects view, and other CDT-based
- parts of the user interface
-\item New Project wizards and Fortran project templates
-\end{itemize}
-
-For more information about CDT, see Chapter~\ref{cha:cdt}.
-
-\item \textbf{org.eclipse.photran.core}
-
-This is the Photran Core plug-in. It contains much of the Fortran-specific
-``behind the scenes'' functionality:
-
-\begin{itemize}
-\item Utility classes
-\item Error parsers for Fortran compilers
-\item Fortran 95 lexical analyzer
-\item Workspace preferences
-\end{itemize}
-
-\item \textbf{org.eclipse.photran.managedbuilder.core}, \\
- \textbf{org.eclipse.photran.managedbuilder.gnu.ui}, \\
- \textbf{org.eclipse.photran.managedbuilder.ui}
-
-Support for Managed Build projects using the GNU toolchain. Managed by Craig Rasmussen at LANL.
-
-\item \textbf{org.eclipse.photran.ui}
-
-This contains the Fortran-specific components of the user interface:
-
-\begin{itemize}
-\item Fortran Editors
-\item Preference pages
-\end{itemize}
-
-\end{itemize}
-
-\section{Virtual Program Graph (VPG) feature: \\org.eclipse.photran.vpg-feature}
-
-The following projects support parsing, analysis, and refactoring of Fortran
-sources. They are written in Java 5. The Virtual Program Graph is described in
-more detail in Chapter~\ref{cha:parsing}.
-
-\begin{itemize}
-
-\item \textbf{org.eclipse.photran.core.vpg}
-
-This contains the parsing, analysis, and refactoring infrastructure.
-\begin{itemize}
-\item Fortran parser and abstract syntax tree (AST)
-\item Fortran preprocessor (to handle INCLUDE lines)
-\item Parser-based model builder
-\item Virtual Program Graph library (vpg-eclipse.jar)
-\item Photran's Virtual Program Graph (VPG)
-\item Utility classes (e.g., \texttt{SemanticError}, \texttt{LineCol})
-\item Project property pages
-\item Binding analysis (equivalent to symbol tables)
-\item Refactoring/program transformation engine
-\item Refactorings
-\end{itemize}
-
-\item \textbf{org.eclipse.photran.core.vpg.tests}, \\
- \textbf{org.eclipse.photran.core.vpg.tests.failing}
-
-JUnit Plug-in tests for the VPG core plug-in.
-
-All tests in org.eclipse.photran.core.vpg.tests should pass. Test suites and
-test cases are placed in the ``failing'' plug-in project until all of their
-tests pass.
-
-These plug-ins \textit{must} be run as a ``JUnit Plug-in Test'' (\textbf{not} a
-``JUnit Test''). In the launch configuration, the environment variable TESTING
-must be set to some non-empty value. (This ensures that the VPG will not try to
-run in the background and interfere with testing.)
-
-\item \textbf{org.eclipse.photran.ui.vpg}
-
-UI contributions that depend on the \texttt{org.eclipse.photran.core.vpg}
-plug-in. Currently, this includes the Open Declaration action, a project
-property page where the user can customize the search path for Fortran modules
-and include files, Fortran Search support, and all of the actions in the
-Refactor menu.
-
-\item \textbf{org.eclipse.photran.cdtinterface.vpg}
-
-This contributes the Fortran model builder which constructs the model seen in
-the Outline view and Fortran Projects view. It uses the Fortran parser
-contained in the org.eclipse.photran.core.vpg plug-in.
-
-\end{itemize}
-
-\section{XL Fortran Compiler Feature: \\org.eclipse.photran.xlf-feature}
-
-The following are plug-ins to support the
-\href{http://www-306.ibm.com/software/awdtools/fortran/}{XL Fortran compiler}.
-
-\begin{itemize}
-\item \textbf{org.eclipse.photran.core.errorparsers.xlf}, \\
- \textbf{org.eclipse.photran.managedbuilder.xlf.ui}
-
-Support for Managed Build projects using XL toolchains. Managed by Craig
-Rasmussen at LANL.
-
-\end{itemize}
-
-\section{Intel Fortran Compiler Feature: \\org.eclipse.photran.intel-feature}
-
-The following are plug-ins to support the \href{http://www.intel.com/cd/software/products/asmo-na/eng/compilers/284132.htm}{Intel Fortran Compiler}.
-
-\begin{itemize}
-\item \textbf{org.eclipse.photran.core.intel}, \\
- \textbf{org.eclipse.photran.managedbuilder.intel.ui}
-
-Support for Managed Build projects using Intel toolchains. Maintained by Bill
-Hilliard at Intel.
-
-\end{itemize}
-
-\section{Non-plug-in projects}
-
-The following projects are in CVS but are not distributed to users:
-
-\begin{itemize}
-
-\item \textbf{org.eclipse.photran-dev-docs}
-
-Developer documentation, including this document (\texttt{dev-guide/*}), CVS
-instructions (\texttt{dev-guide/cvs-instructions.pdf}), the materials from our
-presentation at EclipseCon 2006 on adding a new language to the CDT, and a
-spreadsheet mapping features in the Fortran language to JUnit tests
-(\texttt{language-coverage/*}).
-
-\item \textbf{org.eclipse.photran-samples}
-
-A Photran project containing an assortment of Fortran code.
-
-\end{itemize}
diff --git a/org.eclipse.photran-dev-docs/dev-guide/refactoring.ltx-inc b/org.eclipse.photran-dev-docs/dev-guide/refactoring.ltx-inc
deleted file mode 100644
index be71bce..0000000
--- a/org.eclipse.photran-dev-docs/dev-guide/refactoring.ltx-inc
+++ /dev/null
@@ -1,335 +0,0 @@
-% Refactoring
-
-\section{Introduction}
-
-A refactoring is a program transformation to improve the quality of the source
-code by making it easier to understand and modify. A refactoring is a special
-kind of transformation because it preserves the \emph{observable behavior} of
-your program -- it neither removes nor adds any functionality.\footnote{For more
-information see
-\href{http://www.amazon.com/Refactoring-Improving-Existing-Addison-Wesley-Technology/dp/0201485672}{Refactoring:
-Improving the Design of Existing Code}}.
-
-As mentioned in Chapter~\ref{cha:introduction}, the purpose in writing
-Photran was to create a refactoring tool for Fortran. Because Photran is
-structured as a plug-in for Eclipse, we can take advantage and reuse many of the
-language-neutral support that Eclipse provides for refactoring. This makes it
-possible to create refactoring tools that \emph{resemble} the Java Development
-Tools that most Eclipse programmers are already familiar with.
-
-However, implementing first-class support for Fortran refactoring is not an easy
-task. It requires having an accurate representation of the underlying Fortran
-source files so that our tools can perform proper program analysis to construct
-our automated refactoring. The VPG (see Chapter~\ref{cha:parsing}) is our
-initial step in providing such a representation; the VPG will be improved in
-future versions of Photran to provide support for many different types of
-refactoring and program analysis.
-
-In this chapter, we describe how to add automated refactorings for Fortran using
-the underlying infrastructure provided by Eclipse (and Photran) as well as the
-analysis tools provided by the VPG.
-
-\section{Structure of a Fortran Refactoring}
-\label{sec:structure_of_a_fortran_refactoring}
-
-Refactorings in Photran are subclassed from either
-\texttt{SingleFileFortranRefactoring} or \texttt{MultipleFileFortranRefactoring}.
-Both of these are subclasses of \texttt{AbstractFortranRefactoring}, which
-is in turn a subclass of the \texttt{Refactoring} class provided by the Eclipse
-Language ToolKit (LTK)\footnote{See
-\href{http://www.eclipse.org/articles/Article-LTK/ltk.html}{The Language
-Toolkit: An API for Automated Refactorings in Eclipse-based IDEs} for an
-introduction to the LTK.}.
-
-The LTK is a language-neutral API for supporting refactorings in the Eclipse
-environment. It provides a generic framework to support the following
-functionalities:
-\begin{enumerate}
- \item Invoking the refactoring from the user interface (UI).
- \item Presenting the user with a wizard to step through the refactoring.
- \item Presenting the user with a preview of the changes to be made.
-\end{enumerate}
-
-In other words, the LTK provides a common UI for refactorings: This allows
-refactorings for Java, C/C++, and Fortran to all have the same look and feel.
-
-A concrete Fortran refactoring must implement the following \emph{four} methods:
-\\
-\begin{code}
-\begin{lstlisting}[numbers=none]
-public abstract String getName();
-
-protected abstract void doCheckInitialConditions(RefactoringStatus status,
- IProgressMonitor pm) throws PreconditionFailure;
-
-protected abstract void doCheckFinalConditions(RefactoringStatus status,
- IProgressMonitor pm) throws PreconditionFailure;
-
-protected abstract void doCreateChange(IProgressMonitor pm) throws
- CoreException, OperationCanceledException;
-\end{lstlisting}
-\caption{Abstract methods of \texttt{AbstractFortranRefactoring} class}
-\label{lst:FortranRefactoring_API}
-\end{code}
-
-\texttt{getName} simply returns the name of the refactoring: ``Rename,''
-``Extract Subroutine,'' ``Introduce Implicit None,'' or something similar. This
-name will be used in the title of the wizard that is displayed to the user.
-
-Initial conditions are checked before any wizard is displayed to the user. An
-example would be making sure that the user has selected an identifier to rename.
-If the check fails, a \texttt{PreconditionFailure} should be thrown with a
-message describing the problem for the user.
-
-Final conditions are checked after the user has provided any input. An example
-would be making sure that the new name that that user has provided is a legal
-identifier.
-
-The actual transformation is done in the \texttt{doCreateChange} method, which
-will be called only after the final preconditions are checked. For more information, see Section~\ref{sec:ast_rewriting}.
-
-The \texttt{AbstractFortranRefactoring} class provides a large number of
-\texttt{protected} utility methods common among refactorings, such as a method
-to determine if a token is a uniquely-bound identifier, a method to parse
-fragments of code that are not complete programs, and a \texttt{fail} method
-which is simply shorthand for throwing a \texttt{PreconditionFailure}. It is
-worth reading through the source code for \texttt{AbstractFortranRefactoring} before
-writing your own utility methods.
-
-\section{Creating Changes: AST Rewriting}
-\label{sec:ast_rewriting}
-
-After determining the files that are affected and the actual changes that are
-required for a particular refactoring, manipulating the source code in the
-\texttt{doCreateChange} method is conceptually straightforward.
-
-Instead of manipulating the text in the files directly (by doing a textual find
-\& replace) we use a more scalable approach: manipulating the Abstract Syntax
-Tree (AST) of the source code. This allows us to make changes based on the
-program's semantics and its syntactic structure. This section assumes some
-familiarity with the AST used in Photran. For more information about the AST,
-refer to Section~\ref{sec:virtual_program_graph}.
-
-\subsection{Common Methods for Manipulating the AST}
-
-In the following paragraphs, we describe some of the approaches that are
-currently being used in Photran for manipulating the AST.
-
-\subsubsection{Changing the Text of \texttt{Token}s}
-
-To change the text of a single token, simply call its \texttt{setText} method.
-This is used in \texttt{RenameRefactoring} to rename tokens while preserving the
-``shape'' of the AST.
-\\
-\begin{code}
-\begin{lstlisting}[firstnumber=273, emph={setText}]
-private void makeChangesTo(IFile file, IProgressMonitor pm) throws Error
-{
- try
- {
- vpg.acquirePermanentAST(file);
-
- if (definitionToRename.getTokenRef().getFile().equals(file))
- definitionToRename.getTokenRef().findToken().setText(newName);
-
- for (PhotranTokenRef ref : allReferences)
- if (ref.getFile().equals(file))
- ref.findToken().setText(newName);
-
- addChangeFromModifiedAST(file, pm);
-
- vpg.releaseAST(file);
- }
- catch (Exception e)
- {
- throw new Error(e);
- }
-}
-\end{lstlisting}
-\caption{Use of \texttt{setText} in \texttt{RenamingRefactoring} (see
-RenameRefactoring.java)}
-\end{code}
-
-\subsubsection{Removing/replacing AST Nodes}
-\label{ssub:removing_replacing_AST}
-
-To remove or replace part of an AST, call \texttt{replaceChild},
-\texttt{removeFromTree} or \texttt{replaceWith} on the node itself. These
-methods are defined in the \texttt{IASTNode} interface that all nodes implement.
-Line 107 of Listing~\ref{lst:introimplicitnone_doChange} shows an example of the
-\texttt{removeFromTree} method.
-\\
-
-\begin{code}
-\begin{lstlisting}[firstnumber=7236]
-public static interface IASTNode
-{
- void replaceChild(IASTNode node, IASTNode withNode);
- void removeFromTree();
- void replaceWith(IASTNode newNode);
- ...
-}
-\end{lstlisting}
-\caption{AST manipulation methods in \texttt{IASTNode} (see Parser.java) that
-all AST nodes implement}
-\end{code}
-
-In addition, if the \emph{specific} type of the AST is known, then it is
-possible to just call its \emph{setter} method to directly replace particular
-nodes. For more information on the available setters for each node type, see
-Section~\ref{sub:ordinary_ast_nodes}.
-
-\subsubsection{Inserting new AST Nodes}
-
-Some refactorings require inserting new AST nodes into the current program. For
-instance, the ``Intro Implicit None Refactoring'' inserts new declaration
-statements to make the type of each variable more explicit.
-
-There are \emph{three} steps involved in inserting a new AST node:
-\begin{enumerate}
- \item Constructing the new AST node.
- \item Inserting the new AST node into the correct place.
- \item Re-indenting the new AST node to fit within the current file.
-\end{enumerate}
-
-\paragraph{Constructing the new AST node} The \texttt{AbstractFortranRefactoring} class
-provides convenience methods for constructing new AST nodes. These methods
-should be treated as part of the API for Fortran refactorings . For instance,
-the \texttt{parseLiteralStatement} methods constructs a list of AST nodes for
-use in the ``Intro Implicit None'' refactoring.
-
-\paragraph{Inserting the new AST node} Inserting the new AST node can be
-accomplished using the approach discussed previously in \emph{Removing/replacing AST Nodes}.
-
-\paragraph{Re-indenting the new AST node} It might be necessary to re-indent the
-newly inserted AST node so that it conforms with the indentation at its
-insertion point. The \texttt{Reindenter} utility class provides the static
-method \texttt{reindent} to perform this task. Refer to line 111 of
-Listing~\ref{lst:introimplicitnone_doChange}.
-\\
-
-\begin{code}
-\begin{lstlisting}[firstnumber=95,
-emph={removeFromTree, addChangeFromModifiedAST, Reindenter}]
-protected void doCreateChange(IProgressMonitor progressMonitor) throws
-CoreException, OperationCanceledException
-{
- assert this.selectedScope != null;
-
- for (ScopingNode scope : selectedScope.getAllContainedScopes())
- {
- if (!scope.isImplicitNone()
- && !(scope instanceof ASTExecutableProgramNode)
- && !(scope instanceof ASTDerivedTypeDefNode))
- {
- ASTImplicitStmtNode implicitStmt = findExistingImplicitStatement(scope);
- if (implicitStmt != null) implicitStmt.removeFromTree();
-
- IASTListNode<IBodyConstruct> newDeclarations = constructDeclarations(scope);
- scope.getBody().addAll(0, newDeclarations);
- Reindenter.reindent(newDeclarations, astOfFileInEditor);
- }
- }
-
- this.addChangeFromModifiedAST(this.fileInEditor, progressMonitor);
- vpg.releaseAllASTs();
-}
-\end{lstlisting}
-\caption{Inserting new declarations into an existing scope
-(see \texttt{IntroImplicitNoneRefactoring.java})}
-\label{lst:introimplicitnone_doChange}
-\end{code}
-
-\subsection{Committing Changes}
-
-After all of the changes have been made to a file's AST,
-\texttt{addChangeFromModifiedAST} has to be invoked to actually
-commit the changes. This convenience function creates a new
-\texttt{TextFileChange} for the \emph{entire} content of the file. The
-underlying Eclipse infrastructure performs a \texttt{diff} internally to
-determine what parts have actually changed and present those changes to the user
-in the preview dialog.
-
-\section{Caveats}
-\label{sec:refactoring_caveats}
-
-\textbf{CAUTION:} Internally, the AST is changed only enough to reproduce
-correct source code. After making changes to an AST, most of the accessor
-methods on \texttt{Token}s (\texttt{getLine(), getOffset(),} etc.) will return
-\textit{incorrect} or \emph{null} values.
-
-Therefore, \textit{all program analysis should be done first}; pointers to all
-relevant \textbf{tokens} should be obtained (usually as \texttt{TokenRef}s)
-\textit{prior} to making any modifications to the AST. In general, ensure that
-all analysis (and storing of important information from \texttt{Token}s) should
-be done in the \texttt{doCheckInitialConditions} and
-\texttt{doCheckFinalConditions} methods of your refactoring before the
-\texttt{doCreateChange} method.
-
-\vspace{-0.2in}
-\subsection{\texttt{Token} or \texttt{TokenRef}?}
-\label{sub:token_or_tokenref}
-
-\texttt{Token}s form the leaves of the AST -- therefore they exist as part of
-the Fortran AST. Essentially this means that holding on to a reference to a
-\texttt{Token} object requires the entire AST to be present in memory.
-
-\texttt{TokenRef}s are lightweight descriptions of tokens in an AST. They
-contain only three fields: filename, offset and length. These three fields
-uniquely identify a particular token in a file. Because they are not part of the
-AST, storing a \texttt{TokenRef} does not require the entire AST to be present
-in memory.
-
-For most refactorings, using either \texttt{Token}s or \texttt{TokenRef}s does
-not make much of a difference. However, in a refactoring like ``Rename
-Refactoring'' that could potentially modify hundreds of files, it is impractical
-to store all ASTs in memory at once. Because of the complexity of the Fortran
-language itself, its ASTs can be rather large and complex. Therefore storing
-references to \texttt{TokenRef}s would minimize the number of ASTs that must be
-in memory.
-
-To retrieve an actual \texttt{Token} from a \texttt{TokenRef}, call the
-\texttt{findToken()} method in \texttt{PhotranTokenRef}, a subclass
-of \texttt{TokenRef}.
-
-To create a \texttt{TokenRef} from an actual \texttt{Token}, call the \texttt{getTokenRef} method in \texttt{Token}.
-
-\vspace{-0.2in}
-\section{Examples}
-
-The ``Rename'', ``Introduce Implicit None'' and ``Move COMMON To Module''
-refactorings found in the \texttt{org.eclipse.photran.internal.core.refactoring}
-package inside the \texttt{org.eclipse.photran.core.vpg} project are
-non-trivial but readable and should serve as a model for building future Fortran
-refactorings.
-
-An example of a simpler but rather \emph{useless} refactoring is presented in
-Appendix~\ref{app:obfuscate_refactoring}. It should be taken as a guide on the
-actual steps that are involved in registering a new refactoring with the UI and
-also how to actually construct a working Fortran refactoring.
-
-\section{Common Tasks}
-
-In this section, we briefly summarize some of the common tasks involved in
-writing a new Fortran refactoring.
-
-\noindent \textbf{In an AST, how do I find an ancestor node that is of a
-particular type?}
-\\ Sometimes it might be necessary to traverse the AST \emph{upwards} to look
-for an ancestor node of a particular type. Instead of traversing the AST
-manually, you should call the \texttt{findNearestAncestor(TargetASTNode.class)}
-method on a \texttt{Token} and pass it the \textbf{class} of the ASTNode that
-you are looking for.
-
-\noindent \textbf{How would I create a new AST node from a string?}
-\\ Call the \texttt{parseLiteralStatement(String string)} or
-\texttt{parseLiteralStatementSequence(String string)} method in
-\texttt{AbstractFortranRefactoring}. The former takes a \texttt{String} that represents
-a single statement while the latter takes a \texttt{String} that represents a
-sequence of statements.
-
-\noindent \textbf{How do I print the text of an AST node and all its children
-nodes?}
-\\ Call the \texttt{SourcePrinter.getSourceCodeFromASTNode(IASTNode node)}
-method. This method returns a \texttt{String} representing the source code of
-its parameter; it includes the user's comments, capitalization and whitespace.
diff --git a/org.eclipse.photran-dev-docs/eclipse-config/photran-code-formatter-settings.xml b/org.eclipse.photran-dev-docs/eclipse-config/photran-code-formatter-settings.xml
deleted file mode 100755
index c98606f..0000000
--- a/org.eclipse.photran-dev-docs/eclipse-config/photran-code-formatter-settings.xml
+++ /dev/null
@@ -1,246 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<profiles version="8">
-<profile name="Jeff" version="8">
-<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="20"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="16"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="18"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="0"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="18"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="20"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="20"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="20"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="next_line"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="next_line"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="next_line"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="next_line"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="next_line"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="next_line"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="next_line"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines" value="false"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.format_comments" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="100"/>
-<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="100"/>
-<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
-<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>
-<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>
-<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
-</profile>
-</profiles>
diff --git a/org.eclipse.photran-dev-docs/eclipse-config/photran-ibm-codetemplates.xml b/org.eclipse.photran-dev-docs/eclipse-config/photran-ibm-codetemplates.xml
deleted file mode 100644
index 4d6c3b4..0000000
--- a/org.eclipse.photran-dev-docs/eclipse-config/photran-ibm-codetemplates.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><templates><template autoinsert="true" context="gettercomment_context" deleted="false" description="Comment for getter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name="gettercomment">/**
- * @return the ${bare_field_name}
- */</template><template autoinsert="true" context="settercomment_context" deleted="false" description="Comment for setter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.settercomment" name="settercomment">/**
- * @param ${param} the ${bare_field_name} to set
- */</template><template autoinsert="true" context="constructorcomment_context" deleted="false" description="Comment for created constructors" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name="constructorcomment">/**
- * ${tags}
- */</template><template autoinsert="false" context="filecomment_context" deleted="false" description="Comment for created Java files" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.filecomment" name="filecomment">/*******************************************************************************
- * Copyright (c) ${year} IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Research - Initial API and implementation
- *******************************************************************************/</template><template autoinsert="false" context="typecomment_context" deleted="false" description="Comment for created types" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.typecomment" name="typecomment">/**
- *
- * @author ${user}
- */</template><template autoinsert="true" context="fieldcomment_context" deleted="false" description="Comment for fields" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name="fieldcomment">/**
- *
- */</template><template autoinsert="true" context="methodcomment_context" deleted="false" description="Comment for non-overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name="methodcomment">/**
- * ${tags}
- */</template><template autoinsert="true" context="overridecomment_context" deleted="false" description="Comment for overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name="overridecomment">/* (non-Javadoc)
- * ${see_to_overridden}
- */</template><template autoinsert="true" context="delegatecomment_context" deleted="false" description="Comment for delegate methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name="delegatecomment">/**
- * ${tags}
- * ${see_to_target}
- */</template><template autoinsert="true" context="newtype_context" deleted="false" description="Newly created files" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.newtype" name="newtype">${filecomment}
-${package_declaration}
-
-${typecomment}
-${type_declaration}</template><template autoinsert="true" context="classbody_context" deleted="false" description="Code in new class type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.classbody" name="classbody">
-</template><template autoinsert="true" context="interfacebody_context" deleted="false" description="Code in new interface type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name="interfacebody">
-</template><template autoinsert="true" context="enumbody_context" deleted="false" description="Code in new enum type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.enumbody" name="enumbody">
-</template><template autoinsert="true" context="annotationbody_context" deleted="false" description="Code in new annotation type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name="annotationbody">
-</template><template autoinsert="true" context="catchblock_context" deleted="false" description="Code in new catch blocks" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.catchblock" name="catchblock">// ${todo} Auto-generated catch block
-${exception_var}.printStackTrace();</template><template autoinsert="true" context="methodbody_context" deleted="false" description="Code in created method stubs" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.methodbody" name="methodbody">// ${todo} Auto-generated method stub
-${body_statement}</template><template autoinsert="true" context="constructorbody_context" deleted="false" description="Code in created constructor stubs" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name="constructorbody">${body_statement}
-// ${todo} Auto-generated constructor stub</template><template autoinsert="true" context="getterbody_context" deleted="false" description="Code in created getters" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.getterbody" name="getterbody">return ${field};</template><template autoinsert="true" context="setterbody_context" deleted="false" description="Code in created setters" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.setterbody" name="setterbody">${field} = ${param};</template></templates>
\ No newline at end of file
diff --git a/org.eclipse.photran-dev-docs/eclipse-config/photran-uiuc-codetemplates.xml b/org.eclipse.photran-dev-docs/eclipse-config/photran-uiuc-codetemplates.xml
deleted file mode 100644
index 03a2384..0000000
--- a/org.eclipse.photran-dev-docs/eclipse-config/photran-uiuc-codetemplates.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><templates><template autoinsert="true" context="gettercomment_context" deleted="true" description="Comment for getter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name="gettercomment">/**
- * @return the ${bare_field_name}
- */</template><template autoinsert="true" context="settercomment_context" deleted="true" description="Comment for setter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.settercomment" name="settercomment">/**
- * @param ${param} the ${bare_field_name} to set
- */</template><template autoinsert="true" context="constructorcomment_context" deleted="true" description="Comment for created constructors" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name="constructorcomment">/**
- * ${tags}
- */</template><template autoinsert="false" context="filecomment_context" deleted="true" description="Comment for created Java files" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.filecomment" name="filecomment">/*******************************************************************************
- * Copyright (c) ${year} University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/</template><template autoinsert="false" context="typecomment_context" deleted="true" description="Comment for created types" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.typecomment" name="typecomment">/**
- *
- * @author ${user}
- */</template><template autoinsert="true" context="fieldcomment_context" deleted="true" description="Comment for fields" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name="fieldcomment">/**
- *
- */</template><template autoinsert="true" context="methodcomment_context" deleted="true" description="Comment for non-overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name="methodcomment">/**
- * ${tags}
- */</template><template autoinsert="true" context="overridecomment_context" deleted="true" description="Comment for overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name="overridecomment">/* (non-Javadoc)
- * ${see_to_overridden}
- */</template><template autoinsert="true" context="delegatecomment_context" deleted="true" description="Comment for delegate methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name="delegatecomment">/**
- * ${tags}
- * ${see_to_target}
- */</template><template autoinsert="true" context="newtype_context" deleted="true" description="Newly created files" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.newtype" name="newtype">${filecomment}
-${package_declaration}
-
-${typecomment}
-${type_declaration}</template><template autoinsert="true" context="classbody_context" deleted="true" description="Code in new class type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.classbody" name="classbody">
-</template><template autoinsert="true" context="interfacebody_context" deleted="true" description="Code in new interface type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name="interfacebody">
-</template><template autoinsert="true" context="enumbody_context" deleted="true" description="Code in new enum type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.enumbody" name="enumbody">
-</template><template autoinsert="true" context="annotationbody_context" deleted="true" description="Code in new annotation type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name="annotationbody">
-</template><template autoinsert="true" context="catchblock_context" deleted="true" description="Code in new catch blocks" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.catchblock" name="catchblock">// ${todo} Auto-generated catch block
-${exception_var}.printStackTrace();</template><template autoinsert="true" context="methodbody_context" deleted="true" description="Code in created method stubs" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.methodbody" name="methodbody">// ${todo} Auto-generated method stub
-${body_statement}</template><template autoinsert="true" context="constructorbody_context" deleted="true" description="Code in created constructor stubs" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name="constructorbody">${body_statement}
-// ${todo} Auto-generated constructor stub</template><template autoinsert="true" context="getterbody_context" deleted="true" description="Code in created getters" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.getterbody" name="getterbody">return ${field};</template><template autoinsert="true" context="setterbody_context" deleted="true" description="Code in created setters" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.setterbody" name="setterbody">${field} = ${param};</template></templates>
\ No newline at end of file
diff --git a/org.eclipse.photran-dev-docs/fortran-nature/Bugzilla-info.txt b/org.eclipse.photran-dev-docs/fortran-nature/Bugzilla-info.txt
deleted file mode 100644
index a283e06..0000000
--- a/org.eclipse.photran-dev-docs/fortran-nature/Bugzilla-info.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-Submitted by Matt Scarpino - mattscar@yahoo.com or matt.scarpino@eclipseengineer.com
-2009-07-18
-https://bugs.eclipse.org/bugs/show_bug.cgi?id=277879
\ No newline at end of file
diff --git a/org.eclipse.photran-dev-docs/fortran-nature/README.txt b/org.eclipse.photran-dev-docs/fortran-nature/README.txt
deleted file mode 100644
index 4eeb6cb..0000000
--- a/org.eclipse.photran-dev-docs/fortran-nature/README.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-The submitted patch serves two purposes: it assigns an 'F' icon to all Fortran source files (*.f, *.f77, etc.) and assigns a project nature image for Fortran projects. This is shown in the attached screenshot.
-
-The first part is easy to understand. The Fortran file navigator (represented by org.eclipse.photran.cdtinterface.ui.FortranView), uses a label provider to assign text/images to resources in the workspace. The CDT view uses a CViewLabelProvider for this, and I created a subclass called FViewLabelProvider. This checks the suffix of source files in the Fortran navigator and assigns f_file_obj.gif to any Fortran files.
-
-The second part is more involved. To ensure that Fortran projects can be distinguished from other projects, I took the following steps:
-
-1. Created a class called org.eclipse.photran.core.FProjectNature, which is essentially a copy of the CDT's CProjectNature. Defined an extension for the nature (org.eclipse.core.resources.natures) in plugin.xml.
-
-2. Defined an extension for org.eclipse.ui.ide.projectNatureImages in org.eclipse.photran.ui. This tells Eclipse to display the Fortran project icon (f_ovr.gif) whenever a project's *first* nature is org.eclipse.photran.core.fnature.
-
-3. Added code to FortranProjectWizard so that all Photran created projects have Fortran nature in addition to C nature. Added a lot of code so that this nature is the project's *first* nature. This doesn't affect any of the other natures, but it ensures that the Fortran icon will be displayed whenever the project is shown.
-
-Two last notes. The FViewLabelProvider only works if f_file_obj.gif is placed in the icons folder in the org.eclipse.photran.cdtinterface plug-in. I created my own icon for the project nature (f_ovr.gif), and it must be placed in the icons/full/obj16 folder in the org.eclipse.photran.ui plug-in.
-
-If you have any questions or comments, please e-mail me at matt.scarpino@eclipseengineer.com.
\ No newline at end of file
diff --git a/org.eclipse.photran-dev-docs/fortran-nature/screenshot.gif b/org.eclipse.photran-dev-docs/fortran-nature/screenshot.gif
deleted file mode 100644
index 3713050..0000000
--- a/org.eclipse.photran-dev-docs/fortran-nature/screenshot.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.photran-dev-docs/language-coverage/Fortran 95 Feature Coverage.xls b/org.eclipse.photran-dev-docs/language-coverage/Fortran 95 Feature Coverage.xls
deleted file mode 100644
index 2ed49b2..0000000
--- a/org.eclipse.photran-dev-docs/language-coverage/Fortran 95 Feature Coverage.xls
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.photran-dev-docs/misc-notes/cdt-outline-view-icons.txt b/org.eclipse.photran-dev-docs/misc-notes/cdt-outline-view-icons.txt
deleted file mode 100644
index 74a6013..0000000
--- a/org.eclipse.photran-dev-docs/misc-notes/cdt-outline-view-icons.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-How do icons make their way into the CDT Outline view?
-
-The Outline view basically displays one translation unit's (file's) part
-of the CModel (ICElement hierarchy). The icons displayed are based on
-the types of the individual ICElements in the hierarchy (see
-ICElement.getElementType()).
-
-CContentOutlinePage creates a DecoratingCLabelProvider around a
-StandardCElementLabelProvider, which inherits from an
-AppearanceAwareLabelProvider, which inherits from CUILabelProvider,
-which uses a CElementImageProvider to load icons from the resource bundle
-for the UI plugin by creating URLs to the individual icons.
-
-See CElementImageProvider#getImageLabel, which calls
-getCImageDescriptor, which calls getBaseImageDescriptor, which is where
-there lies a giant case statement lies, which returns the ImageDescriptor.
-
---JO 6/28/05
diff --git a/org.eclipse.photran-dev-docs/misc-notes/cs427fa08-mp5-summary.pdf b/org.eclipse.photran-dev-docs/misc-notes/cs427fa08-mp5-summary.pdf
deleted file mode 100644
index 0c95543..0000000
--- a/org.eclipse.photran-dev-docs/misc-notes/cs427fa08-mp5-summary.pdf
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.photran-dev-docs/misc-notes/fixed-form-note-from-dirk.txt b/org.eclipse.photran-dev-docs/misc-notes/fixed-form-note-from-dirk.txt
deleted file mode 100644
index 8a12358..0000000
--- a/org.eclipse.photran-dev-docs/misc-notes/fixed-form-note-from-dirk.txt
+++ /dev/null
@@ -1,56 +0,0 @@
-From: Dirk Rossow <rossow@foni.net>
-Date: 04/19/2005 01:00 PM
-
-Subject: FixedFormParser
-
-
-Hi Jeff,
-
-i have worked on the fixed form lexer and sending you my first results. It
-looks very promising that far. The details:
-
-FixedFormLexerPrepass preprocesses the input stream. It discards all
-whitespaces and comment lines and concatenates continuation lines.
-Additional it holds a mapping to the character-positions in the file (for
-correct start/end line/col in the Token objects).
-
-The modified InputStream is feed to FixedFormLexerPhase1, which is a
-modified copy of your FreeFormLexerPhase1. The mods are:
-
-Handling of hollerith constants (This is missing in your
-FreeFormLexerPhase1)
-A new state which is active at the start of line. Needed this for
-hollerith-handling
-A new state for IDENT-matching. It only gets active if no keyword matches. I
-added this because there are no whitespaces delimiting the tokens and for
-example callsubname needs to get matched as T_CALL T_IDENT. So the lexer
-tries first to match a token ignoring IDENTs. If there is no match, an IDENT
-is matched and returned.
-
-
-FixedFormLexerPhase1 feeds FixedFormLexerPhase2, which uses your
-FreeFormLexerPhase2.
-After your phase2lexer has processed the tokens, it checks if IDENT-Tokens
-need to get concatenated. This can happen if for example:
-callsubname=0
-T_CALL T_IDENT T_EQUAL T_ICON
-gets converted by your phase2lexer to
-T_IDENT T_IDENT T_EQUAL T_ICON
-
-Finally i modified your FreeFormLexerPhase2 and the generated Parser to
-support different Lexers. I simply added an Interface Ilexer.
-
-I did not commit anything to the repository, i thought you first want to
-have a look.
-There are still some bugs in the FreeFormLexerPhase2. You can find examples
-for them in the fixedTestFiles/regressionTestFiles folder. They are
-slashesInFormat.f, statusEqAfterIf.f, typeSpecAsIdent.f and impliedLoop.f.
-
-I added some of our fortran-code for testing my work, please dont add it to
-the repository.
-
-I hope my explanations are understandable and you like what i did :-) Dont
-hesitate to contact me if you have questions.
-
-Have a nice day
- Dirk
diff --git a/org.eclipse.photran-dev-docs/misc-notes/links.txt b/org.eclipse.photran-dev-docs/misc-notes/links.txt
deleted file mode 100644
index 193aa56..0000000
--- a/org.eclipse.photran-dev-docs/misc-notes/links.txt
+++ /dev/null
@@ -1 +0,0 @@
-http://wiki.eclipse.org/Development_Conventions_and_Guidelines
\ No newline at end of file
diff --git a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/deployment.txt b/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/deployment.txt
deleted file mode 100644
index e72669a..0000000
--- a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/deployment.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-% removed from app-cvs.ltx-inc
-
-\vspace{1em}
-\noindent\textbf{Part~IV. Deploying Photran Feature}
-\begin{enumerate}
- \setcounter{enumi}{\value{running_counter}}
- \item If you are interested in creating a \emph{deployable feature} for
- Photran, you also need to check out these \textbf{additional} four
- projects from CVS:
- \begin{itemize}
- \item org.eclipse.photran-feature
- \item org.eclipse.photran.intel-feature
- \item org.eclipse.photran.vpg-feature
- \item org.eclipse.photran.xlf-feature
- \end{itemize}
- \item In Eclipse, select File $>$ Export\ldots
- \item In the dialog that pops-up, select Plug-in Development $>$ Deployable features.
- \item Click next.
- \item In the list, select
- \begin{itemize}
- \item org.eclipse.photran\_feature (4.0.4)
- \item org.eclipse.photran.intel (4.0.4)
- \item org.eclipse.photran.vpg\_feature (4.0.4)
- \item org.eclipse.photran.xlf\_feature (4.0.4)
- \end{itemize}
- \item Specify a destination folder to export those features. Click Finish.
- \item The Photran features are ready for deployment.
-\end{enumerate}
\ No newline at end of file
diff --git a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-03-cdt.tex b/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-03-cdt.tex
deleted file mode 100644
index d9a7cf5..0000000
--- a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-03-cdt.tex
+++ /dev/null
@@ -1,191 +0,0 @@
-% CDT Integration
-
-Previous versions of Photran were developed by hacking the CDT: essentially,
-we made the user interface say ``Fortran'' instead of ``C/C++,'' we replaced the
-model builder (which creates the Outline view, among other things) with one
-that ran a Fortran parser, we changed the list of file extensions, and we
-modified the syntax highlighting code to recognize Fortran comments and
-keywords.
-
-Starting with Photran 3.0, we are taking a fundamentally different approach:
-\begin{itemize}
-\item We rename the C/C++ Perspective to the Make Perspective. We replace
-the four project types (C Standard Make Project, C++ Standard Make Project,
-C Managed Make Project, and C++ Managed Make Project) with two generic
-project types (Standard Make Project and Managed Make Project). We also
-change the launcher's menu item to read ``Run Local Application'' rather
-than ``Run Local C Application.'' These are all superficial changes
-(i.e., changes to labels and icons, not to the underlying code). The
-Make project types use the natures formerly used for C projects.
-\item We add an extension point to the CDT which allows it to recognize
-other languages besides C and C++.
-\end{itemize}
-
-\section{Integrating with the CDT: The \texttt{AdditionalLanguages}
- Extension Point}
-
-The org.eclipse.photran.xyzsamplelang project is a simple example of how
-to integrate a new language into the CDT. Its README is included in an
-appendix.
-
-Essentially, the process of integrating a new language into the CDT works
-as follows:
-\begin{itemize}
-
-\item Create a new plug-in with an editor. (Obviously, you will eventually
-want to customize the editor for your language.)
-
-\item For each filename extension supported by your editor (i.e., each
-filename extension for files in your language), declare a (text) content type.
-\begin{verbatim}
- <extension point="org.eclipse.core.runtime.contentTypes">
- <content-type id="xyzSource" name="XYZ Language Source File"
- base-type="org.eclipse.core.runtime.text"
- priority="high"/>
- <file-association
- content-type="xyzSource"
- file-extensions="xyz"/>
- </extension>
-\end{verbatim}
-
-\item Specify org.eclipse.cdt.core as a dependency of your plug-in, and
-declare in your \texttt{plugin.xml} that you are extending the
-org.eclipse.cdt.core.AdditionalLanguages extension point.
-\begin{verbatim}
- <extension point="org.eclipse.cdt.core.AdditionalLanguages">
- <language class="addl_langs.XYZLanguage"/>
- </extension>
-\end{verbatim}
-You must provide the fully-qualified name of a class
-(\texttt{addl\_langs.XYZLanguage}, in this case which implements the
-\texttt{org.eclipse.cdt.core.addl\_langs.IAdditionalLanguage} interface.
-
-\item Fill in the definition of that class. See the JavaDoc in
-\texttt{IAdditionalLanguage} for more information.
-\begin{itemize}
-\item \texttt{getName} just returns the name of the language
-(Fortran, XYZ Sample Language, etc.)
-\item \texttt{getRegisteredContentTypeIds} returns a list of all of
-the content types you declared above. The content type names must
-be fully qualified, i.e., the name of the plug-in followed by the name
-of the content type, e.g., \texttt{XyzLanguagePlugIn.xyzSource}
-or \texttt{org.eclipse.photran.core.fortranSource}.
-\item \texttt{createModelBuilder} returns a model builder for your
-language. Look at the \texttt{ToyModelBuilder} in the XYZ Sample Language
-project for a (trivial) example of how a model builder works, and
-see the JavaDoc for \texttt{IModelBuilder} for a more complete description.
-In essence,
-\begin{itemize}
-\item It must implement \texttt{IModelBuilder}.
-\item Its constructor takes a \texttt{TranslationUnit}, i.e., the file
-for which a model needs to be created.
-\item The \texttt{parse} method return a Map taking
-\texttt{ICElement}s to \texttt{CElementInfo}s, which contains all of the
-elements that should appear in the Outline for the translation unit
-specified in the constructor. Use can either reuse the various implementations
-of \texttt{ICElement} in the CDT (\texttt{Macro, Namespace,
-FunctionDeclaration,} etc.), or you can create your own (with their own
-icons) by implementing \texttt{IAdditionalLanguageElement}.
-\end{itemize}
-\end{itemize}
-
-\item In the constructor for your editor, use the CDT UI plug-in's document
-provider rather than your own, i.e.,
-\begin{verbatim}
-setDocumentProvider(CUIPlugin.getDefault().getDocumentProvider());
-\end{verbatim}
-
-\item Since you don't have your own document provider anymore, set up
-your partitioner by overriding
-\begin{verbatim}
-protected void doSetInput(IEditorInput input)
-\end{verbatim}
-and setting it up there.
-
-\item Reuse the Outline page provided by CDT by copying the following
-field and methods from \texttt{FortranEditor} into
-your editor (notice that we are passing \texttt{null} into the
-constructor for \texttt{CEditorOutlinePage}; this doesn't seem to hurt
-anything):
-\begin{verbatim}
- protected CContentOutlinePage fOutlinePage;
-
- public Object getAdapter(Class required) { ... }
-
- public CContentOutlinePage getOutlinePage() { ... }
-
- public static void setOutlinePageInput(CContentOutlinePage page,
- IEditorInput input) { ... }
-\end{verbatim}
-
-\item If you want your editor to jump to the correct location when something
-is selected in the Outline view, it needs to implement
-\texttt{ISelectionChangedListener}. (If you don't require this, remove
-the line ``\texttt{fOutlinePage.addSelectionChangedListener(this);}''
-from the code copied above.) We implemented \texttt{ISelectionChangedListener}
-by copying the following methods verbatim from \texttt{CEditor}:
-\begin{verbatim}
- public void selectionChanged(SelectionChangedEvent event) { ... }
-
- private boolean isActivePart() { ... }
-
- public void setSelection(ISourceRange element, boolean moveCursor) { ... }
-\end{verbatim}
-
-\item If you want to be able to set breakpoints in your editor, add this
-line to the constructor for your editor class:
-\begin{verbatim}
- // JO: This gives you a "Toggle Breakpoint" action (and others)
- // when you right-click the Fortran editor's ruler
- setRulerContextMenuId("#CEditorRulerContext"); //$NON-NLS-1$
-\end{verbatim}
-
-\item If you want the CDT's Refactor menu to appear in your editor, add this
-line to the constructor for your editor class:
-\begin{verbatim}
- // JO: This will put the Refactor menu in the editor's
- // context menu, among other things
- setEditorContextMenuId("#CEditorContext"); //$NON-NLS-1$
-\end{verbatim}
-
-\end{itemize}
-
-\section{Photran-CDT Integration}
-
-Photran is integrated into the CDT in the same way described above.
-\begin{itemize}
-
-\item The Photran Core plug-in
-defines a class \texttt{FortranLanguage}, which implements
-\texttt{IAdditionalLanguage}, and hooks it into the (new)
-\texttt{AdditionalLanguages} extension point in the CDT core.
-
-\item Photran's Core plugin.xml defines a content type
-\texttt{org.eclipse.photran.core.fortranSource}; \texttt{FortranLanguage}
-notifies the CDT that we want it to treat this content type as a valid
-source language.
-
-\item We provide a \texttt{FortranModelBuilder}, which
-runs our Fortran parser over a source file to create a CDT-compatible
-model.
-
-\begin{itemize}
-
-\item Rather than using the CDT's model elements, we provide our own
-model elements, which are all subclasses of \texttt{FortranElement}.
-(\texttt{FortranElement} implements \texttt{IAdditionalLanguageElement}.)
-
-\item The icons corresponding to \texttt{FortranElement}s
-are stored in the org.eclipse.photran.cdtinterface plug-in.\footnote{
-The Photran UI plug-in would be the logical place to store these icons.
-However, the UI already has the Core as a dependency. The icon requests
-come from the \texttt{FortranElement}s in the Core, so if they had to be
-retrieved from the UI, we would introduce a circular dependency. So we put
-them in their own plug-in.}
-
-\end{itemize}
-
-\item The Core plug-in also contributes several error parsers,
-which are described in the next section.
-
-\end{itemize}
diff --git a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-06-parser.tex b/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-06-parser.tex
deleted file mode 100644
index 8a0cf42..0000000
--- a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-06-parser.tex
+++ /dev/null
@@ -1,185 +0,0 @@
-% The Photran Lexers and Parser
-
-The Fortran 95 lexers and parser are stored in the org.eclipse.photran.parser
-project. Because this project takes several minutes and a lot of memory
-(600-800 MB) to compile, it is exported as a (non-sealed) JAR archive,
-\texttt{f95parser.jar}, which is stored in the Core plug-in. The Core,
-Managed Builder, and UI use classes from this JAR file, not from the
-org.eclipse.photran.parser project. So you do \textit{not} need the
-org.eclipse.photran.parser project in your workspace unless you will be
-regenerating this JAR file.
-
-\section{Accessing the Lexers and Parser from Photran: The
- \texttt{FortranProcessor}}
-
-(The following does \textit{not} apply to JUnit tests.)
-
-To scan or parse a file, or to build a symbol table from a parse tree,
-create a \texttt{FortranProcessor} and use it. It knows how to distinguish
-between fixed and free form file extensions based on the user's workspace
-preferences and can determine whether or not parser debugging has been
-enabled (also in the workspace preferences).
-
-Examples:
-\begin{itemize}
-\item Parsing a file: See \texttt{FortranModelBuilder\#parse}
-\item Lexing a file without parsing:
- See \texttt{FortranPartitionScanner\#documentChanged}
-\item Creating a symbol table after a file has been parsed:
- (TODO-Jeff: No good examples yet)
-\end{itemize}
-
-\section{Structure of the Lexers and Parser}
-
-Unfortunately, Fortran is not an easy language to process. It has two
-\textit{source forms,} and keywords are not reserved (so it's fine to call a
-variable ``if''). This greatly complicates lexical analysis. To make
-things as simple as possible, we have separated the lexical analysis into
-several phases, depending on whether the input is in free form or fixed
-form.
-
-When a free form source file is being parsed...
-\begin{itemize}
-
-\item \texttt{FreeFormLexerPhase1}, which is generated from
-\texttt{FreeFormLexerPhase1.flex} by JFlex, splits the input into tokens.
-Tokens such as ``if,'' ``do,'' ``len=,'' etc. are labeled as keywords,
-even if they are being used as identifiers (it doesn't know any better).
-
-\item \texttt{FreeFormLexerPhase2} reads the token stream from
-\texttt{FreeFormLexerPhase1} and buffers an entire statement worth of
-tokens. It then uses Sale's algorithm and an elaborate set of rules
-(specified in the method \texttt{buildAdditionalRules}) to determine which
-keyword tokens should be kept as keywords and which ones should actually
-be identifiers. In the case of ``keywords'' with an equal sign on the end
-(such as ``len=''), if that token should really be an identifier, it is
-split into two tokens: the identifier ``len'' and the = token T\_EQUALS.
-
-\item The \texttt{Parser}, which is generated from \texttt{Fortran95.bnf}
-by my parser generator, reads the tokens from \texttt{FreeFormLexerPhase2}
-and parses the token stream, returning a parse tree. The parse tree is
-described in more detail later.
-
-\end{itemize}
-
-When a fixed form source file is being parsed...
-\begin{itemize}
-
-\item \texttt{FixedFormLexerPrepass} discards whitespace and comments
-and concatenates continuation lines.
-
-\item \texttt{FixedFormLexerPhase1}, which is generated from
-\texttt{FreeFormLexerPhase1.flex} by JFlex, splits the input into tokens.
-Essentially, it is identical to \texttt{FreeFormLexerPhase1}, except that
-there are no rules for whitespace, comments, or line continuations.
-
-\item \texttt{FreeFormLexerPhase2} reads the token stream from
-\texttt{FixedFormLexerPhase1}, resolving identifiers as it does for free form
-input.
-
-\item \texttt{FixedFormLexerPhase2} reads the token stream from
-\texttt{FreeFormLexerPhase2} and concatenates consecutive identifiers.
-
-\item The \texttt{Parser} reads the tokens from \texttt{FixedFormLexerPhase2}.
-
-\end{itemize}
-
-\section{Parse Trees}
-
-\subsection{Overview}
-\textit{
-\textbf{NOTE.}
-We expect that you already know what a parse tree is and what the difference
-is between abstract and concrete syntax. Terms like ``terminal,''
-``nonterminal,'' and ``token'' should be familiar. If they are not,
-you will need to spend some time with the Dragon book\footnote{Aho, Sethi,
-and Ullman, \textit{Compilers: Principles, Techniques, and Tools}} before
-tackling this section.}
-
-When you call one of the \texttt{parse} methods on a \texttt{FortranProcessor},
-either an exception will be thrown (if the lexer or parser encounters an
-error), or the method will return a (non-null) parse tree.
-
-A parse tree is just a tree of \texttt{ParseTreeNode}s with \texttt{Token}s
-as leaves. The \texttt{ParseTreeNode} returned by the \texttt{parse} method
-is the root of the parse tree.
-
-The parse tree for a program \textit{exactly} follows the derivation of the
-program from the grammar in \texttt{Fortran95.bnf}. It is literally a
-parse tree, also known as a concrete syntax tree; it is \textit{not} an
-abstract syntax tree (AST).\footnote{If you want to know why we didn't use an
-abstract syntax tree, see the appendix on Miscellaneous Parser and Language
-Processing Notes.}
-
-It is important to remember that the grammar in
-\texttt{Fortran95.bnf} is different than the one in the Fortran standard.
-The grammar in the Fortran standard is \textit{not} LALR(1)---not even
-close---and so it had to be modified (quite heavily) to successfully
-generate a parser from it. So the parse trees you get from our parser are
-\textit{not} always going to match what the Fortran standard grammar would
-lead you to expect. For example, there is no SFExpr in the Fortran standard
-grammar, but you will find them popping up in your parse trees.
-
-\textbf{TIP.}
-When running Photran, go into your workspace preferences; in the Fortran Parser
-section, there is an (very useful) option to ``display parse tree rather
-than normal Outline view.''
-
-\subsection{An Example}
-
-\begin{figure}[h]
-\centering
-\includegraphics[width=5in]{images/parsetree1.png}
-\caption{Sample program and its parse tree}
-\label{parsetree}
-\end{figure}
-
-Figure \ref{parsetree} shows a trivial program and its parse tree.
-
-\begin{itemize}
-
-\item The node labels in angle brackets, such as $<$xExecutableProgram$>$ and
-$<$xProgramStmt$>$, are nonterminals in the grammar and correspond to
-\texttt{ParseTreeNodes} in the parse tree.\footnote{Note that $<$Free Form
-Source$>$ (at the top of the Outline view) is just a label and not part of
-the parse tree.}
-
-\item Terminals in the grammar have names starting with T\_: for example,
-T\_PROGRAM is the ``program'' keyword and T\_IDENT is an identifier.
-Notice that the carriage return is also a token: end-of-statement (T\_EOS).
-In the figure, these identify \texttt{Token}s in the parse
-tree.\footnote{The distinction between terminals and tokens is somewhat
-subtle. Terminals are things like ``identifier,'' ``plus sign,'' and
-``float'' that appear in a grammar. Tokens are the actual chunks of text
-from your input file, such as ``hello,'' ``+,'' and ``3.14.'' Every token
-\textit{corresponds} to a terminal, e.g., ``hello'' is an identifier,
-``+'' is (the only representation of) a plus sign, and ``3.14'' is a
-float.}
-
-\end{itemize}
-
-Recall that each parse tree node corresponds to a nonterminal (on the
-left-hand side of a production in the grammar) and each token corresponds
-to a terminal.
-
-You can determine the nonterminal corresponding to a \texttt{ParseTreeNode}
-by invoking \texttt{ParseTreeNode\#getRootNonterminal}. (This method name
-will soon be changed to \texttt{getCorrespondingNonterminal} or something
-more intuitive like that.) This will return a \texttt{Nonterminal}. The
-only valid \texttt{Nonterminal}s are all constants in the \texttt{Nonterminal}
-class, so you can do identity comparisons like this:
-\begin{verbatim}
-if (parseTreeNode.getRootNonterminal() == Nonterminal.XEXECUTABLEPROGRAM) ...
-\end{verbatim}
-
-Similarly, you can determine the terminal corresponding to a token by
-calling \texttt{Token\#getTerminal} and doing an identity comparison, as in
-\begin{verbatim}
-if (token.getTerminal() == Terminal.T_IDENT) ...
-\end{verbatim}
-You can get the text of the token (``Hello'' for the only T\_IDENT in
-Figure \ref{parsetree}) by calling \texttt{Token\#getText}.
-
-\texttt{Terminal}s and \texttt{Nonterminal}s both have a
-\texttt{getDescription} method which returns a (String) description of that
-terminal or nonterminal, e.g., ``T\_IDENT'' or ``$<$xExecutableProgram$>$.''
diff --git a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-07-analysis.tex b/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-07-analysis.tex
deleted file mode 100644
index 114ab68..0000000
--- a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-07-analysis.tex
+++ /dev/null
@@ -1,194 +0,0 @@
-% Parse Tree Analysis
-
-\textit{NOTE. This section assumes that you are familiar with the Visitor
-pattern\footnote{See Gamma, Helm, Johnson, and Vlissides, \textit{Design
-Patterns}} and are familiar with symbol tables\footnote{See Aho, Sethi, and
-Ullman, \textit{Compilers: Principles, Techniques, and Tools}}.}
-
-\section{Visitors}
-
-When you want to retrieve structural information about a program, typically
-it will be done using a Visitor on the parse tree.
-
-There are two types of Visitors available in Photran.
-\begin{itemize}
-
-\item A \texttt{ParseTreeVisitor} has a ``callback'' method for each nonterminal
-in the grammar. The tree is traversed in preorder, and as each node is visited,
-a call is made to the Visitor method corresponding to the nonterminal for that node.
-This is usually the preferred Visitor to use.
-
-\item A \texttt{GenericParseTreeVisitor} only distinguishes between
-\texttt{ParseTreeNode}s and \texttt{Token}s. This Visitor should only be used
-when all internal nodes are treated similarly. If you need to distinguish between
-the types of internal nodes, use a \texttt{ParseTreeVisitor} instead.
-
-\end{itemize}
-
-(\texttt{ParseTreeVisitor} is generated by the parser generator and should not
-be modified.)
-
-In addition to the visit methods, both types of Visitors have a
-\texttt{preparingToVisitChildrenOf} method, which is called after a node has
-been visited but before its children have, and a \texttt{doneVisitingChildrenOf}
-method, which is called immediately after its children have been visited but
-before any sibling nodes have.
-
-\subsection{Creating and Using a Visitor}
-
-Create a visitor by subclassing \texttt{ParseTreeVisitor} or
-\texttt{GenericParseTreeVisitor}. By default, all of the visit methods do
-nothing, so you only have to override the methods that are useful to you.
-
-Given the root of the parse tree (i.e., the \texttt{ParseTreeNode} returned
-by \texttt{FortranProcessor\#parse}), use the \texttt{visitUsing} method
-to traverse the parse tree; pass your visitor as the only argument.
-
-\subsection{Sample Traversals}
-
-As an example, consider again the ``do nothing'' program from Figure \ref{parsetree}.
-
-When it is visited using a \texttt{GenericParseTreeVisitor}, the Visitor
-methods are called in this order (methods called between \texttt{preparingToVisitChildrenOf}
-and \texttt{doneVisitingChildrenOf} are indented to illustrate that child nodes
-are being visited):
-
-\begin{verbatim}
-visitParseTreeNode(<xExecutableProgram>)
-preparingToVisitChildrenOf(<xExecutableProgram>)
- visitParseTreeNode(<xProgramUnit>)
- preparingToVisitChildrenOf(<xProgramUnit>)
- visitParseTreeNode(<xMainProgram>)
- preparingToVisitChildrenOf(<xMainProgram>)
- visitParseTreeNode(<xProgramStmt>)
- preparingToVisitChildrenOf(<xProgramStmt>)
- visitToken(T_PROGRAM: "program")
- visitParseTreeNode(<xProgramName>)
- preparingToVisitChildrenOf(<xProgramName>)
- visitToken(T_IDENT: "Hello")
- doneVisitingChildrenOf(<xProgramName>)
- visitToken(T_EOS: (end of line))
- doneVisitingChildrenOf(<xProgramStmt>)
- visitParseTreeNode(<xMainRange>)
- preparingToVisitChildrenOf(<xMainRange>)
- visitParseTreeNode(<xEndProgramStmt>)
- preparingToVisitChildrenOf(<xEndProgramStmt>)
- visitToken(T_END: "end")
- visitToken(T_PROGRAM: "program")
- visitToken(T_EOS: (end of line))
- doneVisitingChildrenOf(<xEndProgramStmt>)
- doneVisitingChildrenOf(<xMainRange>)
- doneVisitingChildrenOf(<xMainProgram>)
- doneVisitingChildrenOf(<xProgramUnit>)
-doneVisitingChildrenOf(<xExecutableProgram>)
-\end{verbatim}
-
-When it is visited using a \texttt{ParseTreeVisitor}, the Visitor
-methods are called in this order:
-
-\begin{verbatim}
-visitXexecutableprogram(<xExecutableProgram>)
-preparingToVisitChildrenOf(<xExecutableProgram>)
- visitXprogramunit(<xProgramUnit>)
- preparingToVisitChildrenOf(<xProgramUnit>)
- visitXmainprogram(<xMainProgram>)
- preparingToVisitChildrenOf(<xMainProgram>)
- visitXprogramstmt(<xProgramStmt>)
- preparingToVisitChildrenOf(<xProgramStmt>)
- visitXprogramname(<xProgramName>)
- preparingToVisitChildrenOf(<xProgramName>)
- doneVisitingChildrenOf(<xProgramName>)
- doneVisitingChildrenOf(<xProgramStmt>)
- visitXmainrange(<xMainRange>)
- preparingToVisitChildrenOf(<xMainRange>)
- visitXendprogramstmt(<xEndProgramStmt>)
- preparingToVisitChildrenOf(<xEndProgramStmt>)
- doneVisitingChildrenOf(<xEndProgramStmt>)
- doneVisitingChildrenOf(<xMainRange>)
- doneVisitingChildrenOf(<xMainProgram>)
- doneVisitingChildrenOf(<xProgramUnit>)
-doneVisitingChildrenOf(<xExecutableProgram>)
-\end{verbatim}
-
-(The Visitors used to generate the output above are stored in
-a JUnit test class called \texttt{ExampleVisitor}.)
-
-\section{The \texttt{ParseTreeSearcher}}
-
-Inside Visitor methods, typically you will want to look for particular tokens
-or syntactic structures.
-
-\subsection{An Example}
-
-Consider the following (randomly selected) method from \texttt{DeclarationCollector},
-one of the classes used for building symbol tables.
-This class scans a program's parse tree, looking for declarations of programs, functions,
-block data, namelists, etc., and inserts declarations for them into a symbol table.
-
-\begin{verbatim}
- public void visitXmainprogram(ParseTreeNode node)
- {
- // # R1101 desn"t ensure ordering as the standard requires;
- // <xMainProgram> ::=
- // <xMainRange> |
- // <xProgramStmt> <xMainRange> ;
- // # R1102
- // <xProgramStmt> ::=
- // <xLblDef> T_PROGRAM <xProgramName> T_EOS ;
- ParseTreeNode programStmt = ParseTreeSearcher.findFirstNodeIn(node, Nonterminal.XPROGRAMSTMT);
- Token name;
- if (programStmt != null)
- name = ParseTreeSearcher.findFirstIdentifierIn(node);
- else
- {
- name = new Token();
- name.setText("(Anonymous Main Program)");
- }
- ...
-\end{verbatim}
-
-(The comment lines are copied from the parser generation grammar, \texttt{Fortran95.bnf}.)
-
-In Fortran, a main program can either start with a program statement, or it
-can not. So both of these are valid programs:
-\begin{verbatim}
-program SayHi
- print *, 'Hello!' print *, 'Hello!'
-end program SayHi end program SayHi
-\end{verbatim}
-
-In this Visitor method, \texttt{node} is guaranteed to be a $<$xMainProgram$>$,
-due to the name of the method. As shown, by looking at the grammar, we can
-determine that it will either have one child (a \texttt{ParseTreeNode} corresponding
-to an $<$xMainRange$>$) or two children (both \texttt{ParseTreeNode}s, the
-first corresponding to an $<$xProgramStmt$>$ and the second corresponding to
-an $<$xMainRange$>$.
-
-If it \textit{does} have an $<$xProgramStmt$>$, then, a quick look at the rules for
-$<$xLblDef$>$ (an optional integer label that can appear at the beginning of any
-Fortran statement) and $<$xProgramName$>$ will make it evident that the first
-identifier token (T\_IDENT) under the $<$xProgramStmt$>$ is the name of the program.
-
-So now we can understand what this method does.
-\begin{itemize}
-
-\item It checks to see if the main program has a $<$xProgramStmt$>$. This is done
-by calling \texttt{ParseTreeSearcher\#findFirstNodeIn}, and telling it we want to
-find the first $<$xProgramStmt$>$ that is a child of \texttt{node}. It will either
-return a \texttt{ParseTreeNode} corresponding to an $<$xProgramStmt$>$, or if it
-can't find one, it will return \texttt{null}.
-
-\item If there is an $<$xProgramStmt$>$, it grabs the first T\_IDENT token, which
-tells the name the user gave to the program.
-
-\item If there was no $<$xProgramStmt$>$, the program does not have a name, so we
-``fake'' a token and name the program ``(Anonymous Main Program).''
-\end{itemize}
-
-\subsection{For More Information}
-
-So, essentially, anytime you have a parse tree (or a subtree of the parse tree)
-and you want to find a particular node or token, use one of the methods in
-\texttt{ParseTreeSearcher}. If there isn't one, you may have to write one yourself.
-Be sure to look at the JavaDoc for the methods in that class; unless you are
-doing something bizarre, one of the existing methods should work.
diff --git a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-08-symtbls.tex b/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-08-symtbls.tex
deleted file mode 100644
index 90b3835..0000000
--- a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-08-symtbls.tex
+++ /dev/null
@@ -1,103 +0,0 @@
-% Symbol Tables
-
-All of the symbol table routines are stored in the ``parser'' folder under the
-Core plug-in.
-
-After you have parsed a file, you can create a symbol table for it by calling
-\texttt{FortranProcessor\#createSymbolTableFromParseTree}. This, in turn calls
-the static method \texttt{SymbolTable\#createSymbolTableFor}, which is intended
-to be the sole entrypoint for symbol table building.
-
-\section{Contents of a Symbol Table}
-
-The classes representing symbol table entries are stored in the
-\texttt{org.eclipse.photran.internal.core.f95parser.symboltable.entries}
-package. Currently, the following are allowed.
-\begin{itemize}
-\item Main Programs
-\item Modules
-\item Functions
-\item Subroutines
-\item Derived Types
-\item Block Data
-\item Namelists
-\item Common Blocks
-\item Interfaces
-\item Externals
-\item Intrinsics
-\item Variables
-\end{itemize}
-
-\texttt{FortranProcessor\#createSymbolTableFromParseTree} returns a
-\texttt{SymbolTable}, which represents the global symbol table for
-the program that was parsed.
-
-A \texttt{SymbolTable} is essentially just a collection of
-\texttt{SymbolTableEntry} objects. Each \texttt{SymbolTableEntry} has
-a child symbol table. For \texttt{FunctionEntry} objects, this child
-table contains all of the parameters, the return variable, and any
-local variables declared inside the function. For \texttt{VariableEntry}
-objects, which represent local variables, the child table will always
-be empty (it is there only for uniformity).
-
-Symbol tables also keep track of whether an ``implicit'' rule applies,
-what external modules are being used (via USE statements), etc.
-
-To see what's in a symbol table, just use the \texttt{toString} method.
-Child tables will be indented in the output.
-
-The symbol table-related classes are JavaDoc'd, so additional information
-is available there.
-
-\section{\texttt{SymbolTableVisitor}s}
-
-You can also create a Visitor for a program's symbol table hierarchy
-by subclassing \texttt{SymbolTableVisitor}, which has a visit method
-for each type of \texttt{SymbolTableEntry}.
-
-\section{The Module Database}
-
-Similar to \textit{import} statements in Java, Fortran programs can USE a
-module defined in a different Fortran file. Unfortunately, there is no
-easy way to tell where this module might be defined. The user simply specifies
-a list of ``module paths'' which are searched for Fortran source files.
-Each Fortran source file must be checked to see if it contains a module
-with the given name.
-
-In Photran, the list of modules paths is stored in a workspace preference,
-although we plan to convert this to a project property.
-
-The class \texttt{ModuleLoader} is responsible for locating modules in this
-way. The \texttt{ModuleDB} caches the symbol tables for files on the module
-path so they don't all have to be reparsed every time a module is searched for.
-Neither of these is complete yet, but they will be soon.
-
-\section{How Symbol Tables are Built}
-
-A quick look at \texttt{FortranProcessor\#createSymbolTableFromParseTree}
-explains how symbol tables are built:
-\begin{verbatim}
- public static SymbolTable createSymbolTableFor(ParseTreeNode parseTree) throws Exception
- {
- SymbolTable tbl = (new DeclarationCollector(parseTree)).getSymbolTable();
- Intrinsics.fill(tbl);
- return (new ReferenceCollector(tbl, parseTree)).getSymbolTable();
- }
-\end{verbatim}
-
-\begin{itemize}
-
-\item A Visitor is run over the parse tree to collect declarations of
-programs, modules, functions, subroutines, block data, derived types,
-namelists, etc.---anything that can be stored in the symbol table.
-
-\item The names of all Fortran 95 intrinsic functions and subroutines
-are inserted into the table.
-
-\item Now that declarations have been inserted, the parse tree is scanned
-for references (i.e., uses of a function, variable, namelist, etc.).
-If implicit variables have been allowed, the \texttt{ReferenceCollector} will
-detect those (since they are used but not declared) and insert them into the
-symbol table.
-
-\end{itemize}
diff --git a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-09-refac-suppt.tex b/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-09-refac-suppt.tex
deleted file mode 100644
index f49a4f0..0000000
--- a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-09-refac-suppt.tex
+++ /dev/null
@@ -1,123 +0,0 @@
-% Refactoring Support: Source Printing and Program Editing
-
-Aside from the usual front end components (parser and symbol tables), a
-refactoring tool requires
-\begin{itemize}
-\item a means of manipulating the parse tree, i.e., moving nodes around,
-deleting them, and inserting new ones; and
-\item a means of outputting ``revised'' source code after a parse tree has
-been manipulated.
-\end{itemize}
-
-We will look at the means of outputting source code first, discussing
-the \texttt{Presentation} and \texttt{SourcePrinter} classes.
-We will then discuss the \texttt{ProgramEditor}, which allows you to
-manipulate the parse tree and \texttt{Presentation}.
-
-\section{The \texttt{Presentation} and the \texttt{Program}}
-
-While the parse tree for a program stores all of the ``important'' tokens
-(identifiers, parentheses, etc.), other things---comments, line continuations,
-and C preprocessor directives---are not in the Fortran grammar. However,
-when the source printer produces source code from a parse tree, it needs to
-include these as well.
-
-We refer to these things (comments, line continuations, C preprocessor
-directives, Fortran INCLUDE statements, and anything else that does not
-end up in a parse tree) as \textit{non-tree tokens}, and we represent them
-by the class \texttt{NonTreeToken}. A \texttt{Presentation} is essentially
-a list of all the non-tree tokens that appeared in a parse.
-
-A \texttt{Presentation} can be created from a parse by calling the
-\texttt{getNonTreeTokens} method on the lexer and passing the resulting
-\texttt{List<NonTreeToken>} to the \texttt{Presentation} constructor.
-
-A \texttt{Program} is just parse tree paired with a symbol table and a
-\texttt{Presentation}.
-
-\section{Presentation Blocks}
-
-Since \texttt{Token}s in the parse tree and \texttt{NonTreeToken}s in
-a program's \texttt{Presentation} have a lot in common, we will refer to
-them collectively as ``presentation blocks.'' Not surprisingly, they
-share a common superclass (interface, rather): \texttt{IPresentationBlock}.
-JavaDoc removed, it looks like this:
-
-\begin{verbatim}
-public interface IPresentationBlock
-{
- public abstract String getFilename();
- public abstract void setFilename(String value);
-
- public abstract int getStartLine();
- public abstract void setStartLine(int value);
-
- public abstract int getStartCol();
- public abstract void setStartCol(int value);
-
- public abstract int getEndLine();
- public abstract void setEndLine(int value);
-
- public abstract int getEndCol();
- public abstract void setEndCol(int value);
-
- public abstract int getOffset();
- public abstract void setOffset(int value);
-
- public abstract int getLength();
- public abstract void setLength(int value);
-
- public abstract String getText();
- public abstract void setText(String value);
-}
-\end{verbatim}
-
-Intuitively, then, all presentation blocks know what file they originated from,
-where they were in the file (both in terms of line/column and offset/length),
-and exactly what their text looked like. (This is important since capitalization
-does not matter in Fortran.)
-
-Most importantly, this means that reproduce the source code of a program verbatim
-from a parse tree and a \texttt{Presentation}. (The only difference will be the
-use of spaces vs. tabs to make sure tokens appear in the correct column on a line.)
-All comments and formatting will be retained.
-
-\section{The \texttt{SourcePrinter}}
-
-The job of the source printer (class \texttt{SourcePrinter}) is to take a
-a parse tree and corresponding \texttt{Presentation}
-and produce source code from it.
-
-Since every \texttt{Token} in the parse tree and every \texttt{NonTreeToken}
-in the \texttt{Presentation} knows what line and column it should appear on,
-this is easy.
-
-\section{The \texttt{ProgramEditor}}
-
-Essentially, a refactoring needs to change the parse tree for a program. It
-may change existing nodes, move them around, remove them altogether, or insert
-new nodes.
-
-As described above, though, source code is produced by looking at the line/column
-offsets of the \texttt{Token}s in the parse tree and interleaving comments and
-other non-tree tokens from a program's \texttt{Presentation}.
-
-When we add, move, change, or delete a subtree of the parse tree, then,
-we must do three things:
-\begin{itemize}
-\item adjust the positions of the \texttt{Token}s in that subtree,
-\item adjust the positions of the related \texttt{NonTreeToken}s
-(e.g., the comments describing a method and C preprocessor directives in its
-definition)
-\item adjust the positions of all of the presentation blocks that appear after
-the modified subtree. For example, if you change an token's text from
-``Hello'' to ``Goodbye,'' every presentation block after that one will have
-its offset incremented by 2, and every presentation block to the right of
-that token on the same line will also have its starting column number incremented
-by 2.
-\end{itemize}
-
-The (static) methods in \texttt{ProgramEditor} are used to add, move, modify,
-and delete subtrees.
-
-This class will be described more as it stabilizes.
diff --git a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-10-refactoring.tex b/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-10-refactoring.tex
deleted file mode 100644
index b3b147c..0000000
--- a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-10-refactoring.tex
+++ /dev/null
@@ -1,153 +0,0 @@
-% Refactoring: Preconditions and Implementation
-
-From an implementation standpoint, a refactoring consists of
-\begin{itemize}
-\item a set of \textit{initial preconditions},
-\item input from the user,
-\item a set of \textit{final preconditions}, and
-\item a program manipulation.
-\end{itemize}
-
-As an example, consider the easiest of all refactorings: Rename.
-\begin{itemize}
-\item \textbf{Initial preconditions:}
- \begin{itemize}
- \item The token to rename should be an identifier.
- \item The identifier must correspond to an entry in the symbol table.
- \item If Rename is limited to certain entities, say, variables and subprograms,
- the symbol table entry should indicate that the identifier corresponds
- to a variable or subprogram.
- \end{itemize}
-\item \textbf{User input:}
- \begin{itemize}
- \item New name for the variable or subprogram
- \end{itemize}
-\item \textbf{Final preconditions:}
- \begin{itemize}
- \item The new name must be a valid identifier.
- \item The new name must be different from the old name.
- \item The new name must not already exist in its namespace.
- \item For every reference to the old name, a change to the new name should uniquely
- identify the same variable or function. For example, if you are renaming a
- global variable from \texttt{a} to \texttt{b}, but a local variable \texttt{b}
- will end up shadowing the global variable and cause one of its references to
- ``go wrong,'' then the rename cannot continue.
- \end{itemize}
-\item \textbf{Program manipulation:}
- \begin{itemize}
- \item Locate the declaration of the entity being renamed, and locate all
- references in all files in the workspace, and change the token text
- to the new name.
- \end{itemize}
-\end{itemize}
-
-The distinction between initial and final preconditions, then, is that
-initial preconditions must be satisfied before the user is asked for input,
-while final preconditions depend on the user's input. If a refactoring does
-not require user input, it will have no final preconditions.
-
-\section{Running a Refactoring}
-
-Running a refactoring looks something like this.\footnote{The
-\texttt{if (!...) throw ...} is an obvious code smell that makes it look like
-the various methods in \texttt{RenameRefactoring} should be throwing exceptions
-rather than returning booleans. The current structure makes more sense in
-``real'' code, where the user is being assaulted with dialog boxes and other
-things happen between each of the steps.}
-
-\begin{verbatim}
- RenameRefactoring r = new RenameRefactoring(getProgram(), targetToken);
- if (!r.checkInitialPreconditions()) throw new Error(r.getErrorMessage());
- r.setNewName("Whatever");
- if (!r.checkFinalPreconditions()) throw new Error(r.getErrorMessage());
- if (!r.perform()) throw new Error(r.getErrorMessage());
-\end{verbatim}
-
-In other words, you
-\begin{itemize}
-\item check the initial preconditions,
-\item get input from the user,
-\item check the final preconditions, and
-\item finally perform the refactoring.
-\end{itemize}
-At any point, if a step has failed, you can call \texttt{r.getErrorMessage()}
-to get an explanation suitable for displaying to the user.
-
-\section{The \texttt{FortranRefactoring} Class}
-
-All Fortran refactorings must be subclasses of \texttt{FortranRefactoring}.
-\texttt{FortranRefactoring} (or its superclass) provides
-\begin{itemize}
-\item an instance variable \texttt{error}, the contents of which will be
- returned
- when the user calls \texttt{getErrorMessage()}. If the refactoring fails,
- before returning false, be sure to set this so the user knows why.
-\item Two \texttt{List}s of \texttt{Precondition}s:
- \texttt{initialPreconditions}
- and \texttt{finalPreconditions}. Add preconditions to the former in the
- constructor and the latter after input has been received from the user.
-\item Two fields, \texttt{initialPreconditionsCheckedAndPassed} and
- \texttt{finalPreconditionsCheckedAndPassed}. For example, you will want
- to assert that the initial preconditions have been checked and passed
- before checking the final preconditions.
-\end{itemize}
-
-\section{Preconditions}
-
-Refactoring preconditions are stored in the package
-\texttt{org.eclipse.photran.internal.core.refactoring.preconditions}.
-They are all derived from the class \texttt{AbstractPrecondition}.
-
-A precondition (i.e., a class derived from \texttt{AbstractPrecondition})
-has:
-\begin{itemize}
-\item a \texttt{List} of prerequisite preconditions, and
-\item a method for checking this precondition.
-\end{itemize}
-
-To check a precondition, call its \texttt{check} method. After this method
-has been called once, it ``remembers'' whether it succeeded or failed, so
-future calls to \texttt{check} will just return the stored result rather than
-performing the entire check again.\footnote{It is very possible that a
-precondition will be checked manually, and then it will be checked again
-because it is a prerequisite for another precondition. This resolves any
-inefficiences that might result because of this.}
-
-To implement how a precondition is checked, override the abstract method
-\texttt{checkThisPrecondition} method. If any other preconditions need
-to be checked before this one, add them to the \texttt{prereqPreconditions}
-list in the constructor. If the code in \texttt{checkThisPrecondition} is
-called, they have all been satisfied.
-
-The fields \texttt{parseTree}, \texttt{presentation}, and \texttt{symbolTable}
-will be populated when the constructor is called. You will almost definitely
-need to use these in your implementation of \texttt{checkThisPrecondition}.
-
-\section{Implementing a Refactoring}
-
-\begin{itemize}
-
-\item If you need any preconditions that don't exist yet, implement them
- as described above.
-
-\item Create a subclass of \texttt{FortranRefactoring}.
-
-\item In the constructor, call \texttt{super} and add preconditions
- to the \texttt{initialPreconditions} field.
-
-\item Implement any methods to store input from the user. At the beginning
- of these methods, you will probably want to assert
- \texttt{initialPreconditionsCheckedAndPassed}.
-
-\item Implement \texttt{perform}. You will want to assert that all user
- input is in place as well as asserting
- \texttt{finalPreconditionsCheckedAndPassed}. Use the
- \texttt{ProgramEditor} to modify the parse tree and presentation.
- If your changes might possibly affect the program's symbol table,
- call the (inherited) \texttt{rebuildSymbolTable} method after all
- transformations have been completed.
-
-\end{itemize}
-
-TODO-Jeff: Figure out and document how to integrate a refactoring into the
-(CDT) UI.
diff --git a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-a2-xyz.tex b/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-a2-xyz.tex
deleted file mode 100644
index 766084f..0000000
--- a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-a2-xyz.tex
+++ /dev/null
@@ -1,156 +0,0 @@
-% XYZ Language Plug-in README
-
-The org.eclipse.photran.xyzsamplelang project demonstrates
-how to use the \texttt{AdditionalLanguages} extension point.
-It is just the sample XML editor plug-in that gets created when you choose
-to create a new plug-in project and select the ``plug-in with an editor''
-template. However, it has been modified to integrate with the CDT.
-Here is the README from that project, which is a cursory description of
-how the CDT was modified and how the XYZ language was integrated. The
-specific changes to the editor are documented in its code, so be sure
-to read that too!
-
-\begin{verbatim}
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-
- HOW TO TIE A NEW SOURCE FILE TYPE, PARSER, AND MODEL BUILDER INTO THE CDT
- (AND HOW TO MAKE THE CDT ALLOW IT)
-
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-If you create your own editor, model builder, and ICElement-derived elements,
-some simple changes to the CDT source code will make the CDT
-integrate your parser and the elements it produces into its model.
-
-We add an AdditionalLanguages extension point to the CDT Core and change a
-couple of methods to make use of it.
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-NOTE ON INCLUDED SOURCE CODE:
-
-All files in the CDT Integration Proof-of-Concept - Phase 1 source folder were
-generated by the New Plug-In wizard EXCEPT:
-
-- Several changes were made to the editor's main class (XyzLanguageEditor) and
- are commented there
-- I added FortranContentOutlinePage
-- I added the ToyElement and ToyModelBuilder classes (based on Photran's
- FortranElement hierarchy and its (hidden) ToyModelBuilder)
-- I added XyzLanguagePerspective, which gives us our own perspective and adds
- a shortcut for our new file wizard to the New File menu
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-This is NOT well-written, and it is NOT a tutorial. It assumes you have some
-idea of how the CDT works (e.g., what the Model is), and it assumes that you
-will look at my code to see all the details.
-
-The XYZ Sample Language code is documented, so that should be read in addition
-to this README.
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-First, I checked out the CDT source (most of it, anyway) from CVS.
-
-I created a basic editor and a New wizard to complement it
-using the New Plugin wizard. I just called it XyzLanguageEditor
-rather than XMLEditor or whatever the default is. The filename extension
-is .xyz.
-
-I added the CDT Core and UI plugins as dependencies of my new plugin.
-
-After the wizard finished, I declared an xyzSource content type (text) to
-match the .xyz filename extension that the editor uses.
-
-(I also created an XYZ Language perspective by subclassing CPerspective, although
-that has only cosmetic value and isn't necessary for what I describe below.)
-
------
-
-Before we can add additional languages to the CDT, we must make the following
-changes to the CDT itself:
-
-Add an AdditionalLanguages extension point to the Core's plugin.xml
-Add AdditionalLanguages.exsd to the Core's schema folder
-Add org.eclipse.cdt.core.addl_langs package to the Core's src folder, containing:
- IAdditionalLanguage -- Each extension language must implement this
- AdditionalLanguagesExtension.java -- Provides access to extension point; iterable
- AdditionalLanguagesIterator.java -- Iterates through contributed IAdditionalLanguages
- IAdditionalLanguageCallback -- For performing an action on each contributed language
- IModelBuilder -- Extension languages provide their model builder this way
- IAdditionalLanguageElement -- ICElement extensions must implement this
-
-Now we need to make the CDT recognize our additional content types as
-valid TranslationUnits in its model.
-
-These changes make sure CoreModel#getRegistedContentTypeId works for
-additional content types. This function is called by CContainer
-and, if it returns a valid (registerd-with-the-CDT) content type,
-makes a TranslationUnit out of the file being processed.
-
-Essentially, we just add a line or two to each of the following which asks the
-AdditionalLanguagesExtension to check whether some extension plug-in (like our
-XYZ Language Plug-in) supports a given content type.
-
- 1. CoreModel#getRegistedContentTypeIds
- 2. CCorePlugin#getContentType
- 3. TranslationUnit#isSourceUnit
- 4. CoreModel#isValidSourceUnitName
- 5. CoreModel#isValidTranslationUnitName
-
- NOTE:
- The following are places where the CCorePlugin.CONTENT_TYPE_CSOURCE
- content type is checked for but I elected not to check for
- extension content types:
- TranslationUnit#isCLanguage
- CoreModel#isValidCSourceUnitName
- AbstractIndexerRunner#shouldIndex
- ...the following two methods are identical...
- DOMSearchUtil#getLanguage
- InternalASTServiceProvider#getLanguage
-
-Next, we want to allow additional languages to be parsed by their own parser,
-and they should be able to build their own models for the Outline and Make
-Projects views.
-
-The CModelBuilder is called by TranslationUnit#parse. We will make
-TranslationUnit#parse call our own model builder (ToyModelBuilder), which
-will use some special ICElements (base class ToyElement) to extend the C Model.
-Again, this is done through the extension point, so it can apply to any language.
-
-- CModelBuilder changed to implement IModelBuilder
-- Added extension point checking to TranslationUnit#parse
-- Made CElementInfo public (rather than default)
-- Made CElementInfo#setIsStructureKnown public (rather than protected)
-- Added extension point checking to CElementImageProvider#getBaseImageDescriptor
-
-The last point is important. Additional languages can reuse the CDT's model elements
-(for functions, classes, etc. -- all the things that show up in the Outline), or
-they can create their own (e.g., Fortran has Modules and Block Data, neither of
-which have direct analogs in C/C++). These new elements can be created by implementing
-IAdditionalLanguageElement. IAdditionalLanguageElements must implement a
-method getBaseImageDescriptor() which provides an Outline icon for that element.
-
------
-
-To integrate our XYZ language into the CDT...
-
-First, we add the following to our plugin.xml:
-
- <extension point="org.eclipse.cdt.core.AdditionalLanguages">
- <language class="addl_langs.XYZLanguage"/>
- </extension>
-
-We provide a class addl_langs.XYZLanguage which implements IAdditionalLanguage.
-See the JavaDoc for IAdditionalLanguage. Essentially, we claim to support
-the XyzLanguagePlugIn.xyzSource content type, and we provide a ToyModelBuilder
-which will provide a (static, and very boring) Outline of XYZ Language source files.
-
-Next, I added Outline support to the editor by making a tiny subclass of
-CContentOutlinePage. See several relevant notes in XyzLanguageEditor.java.
-See also FortranContentOutlinePage. We are telling CContentOutlinePage
-its editor is null, since it doesn't do anything useful with it.
-\end{verbatim}
diff --git a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-a3-cdt-ext-pt.tex b/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-a3-cdt-ext-pt.tex
deleted file mode 100644
index 0641a9c..0000000
--- a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-a3-cdt-ext-pt.tex
+++ /dev/null
@@ -1,85 +0,0 @@
-% Overview of Implementation of the CDT AdditionalLanguages Extension Point
-
-The following, from an e-mail to the CDT copied to photran-dev, is an
-alternative description of how we modified the CDT to include this
-extension point.
-
-\begin{verbatim}
-1. Add an AdditionalLanguages extension point to the Core's plugin.xml and AdditionalLanguages.exsd to the Core's schema folder
-
- Extend via <language class="my.plugin.XyzLanguage">
- where XyzLanguage implements IAdditionalLanguage (see below)
-
-2. Add a package org.eclipse.cdt.core.addl_langs containing:
-
- IAdditionalLanguage
- public interface IAdditionalLanguage {
- public String getName();
- public boolean matchesSourceContentType(String contentTypeID);
- public Collection/*<String>*/ getRegistedContentTypeIds();
- public IModelBuilder createModelBuilder(TranslationUnit tu,
- Map newElements);
- }
-
- AdditionalLanguagesExtension.java
- Singleton; provides access to the extension point
- Methods:
- public Iterator/*<IAdditionalLanguage>*/ iterator()
- public void processAdditionalLanguages(
- IAdditionalLanguageCallback callback)
- public boolean someAdditionalLanguageMatchesContentType(
- String contentTypeID)
- public IAdditionalLanguage getLanguageForContentType(
- String contentTypeID)
-
- AdditionalLanguagesIterator.java -- see iterator() above
- Implements Iterable/*<IAdditionalLanguage>*/
-
- IAdditionalLanguageCallback -- see processAdditionalLanguages() above
- Allows you to perform some arbitrary action on each contributed
- IAdditionalLanguage
-
- IModelBuilder
- Each extension language provides a model builder this way
- Single method:
- public abstract Map parse(boolean quickParseMode)
- throws Exception;
-
- IAdditionalLanguageElement (extends ICElement)
- Allows you to extend the ICElement hierarchy
- Methods:
- public abstract Object getBaseImageDescriptor();
- - The return type should really be ImageDescriptor,
- but I don't want to make the Core depend on JFace
-
-3. Change content type checking to use extension point...
- i. CoreModel#getRegistedContentTypeIds
- ii. CCorePlugin#getContentType
- iii. TranslationUnit#isSourceUnit
- iv. CoreModel#isValidSourceUnitName
- v. CoreModel#isValidTranslationUnitName
-
- The change each of these is just a line or two -- usually a call to
- AdditionalLanguagesExtension#someAdditionalLanguageMatchesContentType
-
-4. Make CModelBuilder implement IModelBuilder (no substantive change)
-
-5. Change the beginning of TranslationUnit#parse(Map):
- IModelBuilder modelBuilder;
- IAdditionalLanguage lang = AdditionalLanguagesExtension
- .getInstance()
- .getLanguageForSourceContentType(fContentTypeID);
- if (lang != null)
- modelBuilder = lang.createModelBuilder(this, newElements);
- else
- modelBuilder = new CModelBuilder(this, newElements);
-
-6. Make CElementInfo public (rather than default)
-
-7. Make CElementInfo#setIsStructureKnown public (rather than protected)
-
-8. Add this to the top of CElementImageProvider#getBaseImageDescriptor:
- if (celement instanceof IAdditionalLanguageElement)
- return (ImageDescriptor)
- ((IAdditionalLanguageElement)celement).getBaseImageDescriptor();
-\end{verbatim}
diff --git a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-a4-misc-notes.tex b/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-a4-misc-notes.tex
deleted file mode 100644
index 2c9d93c..0000000
--- a/org.eclipse.photran-dev-docs/misc-notes/old-dev-guide-chapters/inc-a4-misc-notes.tex
+++ /dev/null
@@ -1,57 +0,0 @@
-% Miscellaneous Parser and Language Processing Notes
-
-\section{Notes on the (almost-)LALR(1) Grammar}
-
-The current grammar is based on an Eli grammar that has been worked on
-for several years. All of the lexer work is totally original, and we fixed
-several bugs in the Eli grammar, but for the most part the grammar in
-\texttt{Fortran95.bnf} is the work of other people. We have invested
-several months of work in it---but that does not compare to the years of
-work invested by the previous authors of that grammar.
-
-More information on the Eli grammar is available at
-http://members.aol.com/wclodius/eli\_f95\_parser.html
-
-\section{Why not an abstract syntax tree?}
-
-We started by building an AST for Fortran by hand. For a compiler, this
-wouldn't be a big deal. The purpose of an AST is provide a tree that only
-contains ``useful'' information from the parse, so superfluous tokens like
-parentheses never end up in an AST. For a refactoring tool, though,
-it is important to remember every token in the parse, because you need to
-reproduce code that looks similar to the user's original code. Fortran
-has a number of cases where there are several different ways to specify the
-same thing. For example, you can end a program with ``end,'' ``end program,''
-or ``end program'' followed by the name of the program. Other cases, with
-several optional tokens in the middle of statements, are trickier. So,
-long story short, after a couple of months, we had about 600 AST classes and
-were nowhere near finished.
-
-So we needed a different alternative.
-
-One would be to have the parser generator generate the AST stuff for us.
-However, aside from the fact that it would require lots of tedious annotations
-in the grammar, we would still be in a place of having several hundred AST
-classes and a Visitor with several hundred methods.
-
-Instead, we\footnote{Actually, ``I'' is more correct... Spiros was leaving
-for Google, Brian was indifferent, and I think Dr. Johnson still would
-have preferred an AST... so now you know where to put the blame...} decided
-to use a good old-fashioned parse tree.
-
-Here's why.
-
-First, it made the ``superfluous token'' problem go away.
-Since each node just had a \texttt{List} of child nodes (either tokens or
-other parse tree nodes), we did not have to do anything extra to accommodate
-all of the variations of a statement. All the tokens were there when we
-needed them (e.g., for prettyprinting), and they could be ignored when we
-didn't need them.
-
-Second, it gave us two possible Visitors, as described above. More
-importantly, unlike visiting an AST, these Visitors could just do a ``dumb''
-recursive traversal of the tree, totally ignorant of the underlying grammar.
-This also made parse tree searches and grammar modifications easier.
-
-There are probably other reasons as well which I can try to remember if
-someone is still not convinced that this was a good idea.
diff --git a/org.eclipse.photran-dev-docs/patches/patch-20051101.txt b/org.eclipse.photran-dev-docs/patches/patch-20051101.txt
deleted file mode 100644
index 8aabdce..0000000
--- a/org.eclipse.photran-dev-docs/patches/patch-20051101.txt
+++ /dev/null
@@ -1,1266 +0,0 @@
-Index: src/org/eclipse/photran/internal/ui/editor/AdaptedSourceViewer.java
-===================================================================
-RCS file: /cvsroot/technology/org.eclipse.photran/org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/AdaptedSourceViewer.java,v
-retrieving revision 1.1
-diff -u -r1.1 AdaptedSourceViewer.java
---- src/org/eclipse/photran/internal/ui/editor/AdaptedSourceViewer.java 29 Sep 2005 19:08:24 -0000 1.1
-+++ src/org/eclipse/photran/internal/ui/editor/AdaptedSourceViewer.java 16 Oct 2005 07:51:09 -0000
-@@ -9,9 +9,6 @@
-
- import org.eclipse.jface.text.DocumentCommand;
- import org.eclipse.jface.text.source.IOverviewRuler;
--import org.eclipse.jface.text.source.ISourceViewer;
--import org.eclipse.jface.text.source.ISourceViewerExtension;
--import org.eclipse.jface.text.source.ISourceViewerExtension2;
- import org.eclipse.jface.text.source.IVerticalRuler;
- import org.eclipse.jface.text.source.SourceViewer;
- import org.eclipse.jface.text.source.SourceViewerConfiguration;
-Index: src/org/eclipse/photran/internal/ui/editor/FortranFixedFormEditor.java
-===================================================================
-RCS file: /cvsroot/technology/org.eclipse.photran/org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/FortranFixedFormEditor.java,v
-retrieving revision 1.1
-diff -u -r1.1 FortranFixedFormEditor.java
---- src/org/eclipse/photran/internal/ui/editor/FortranFixedFormEditor.java 29 Sep 2005 19:08:24 -0000 1.1
-+++ src/org/eclipse/photran/internal/ui/editor/FortranFixedFormEditor.java 16 Oct 2005 07:51:09 -0000
-@@ -46,7 +46,7 @@
-
- // This is '6' because of the way Eclipse handles spaces and tabs.
- // If this were '7', the tab would insert 7 spaces and you would start at column 8
-- private static final int COLUMM_6_WIDTH = 6;
-+ public static final int COLUMM_6_WIDTH = 6;
- private static final int COLUMN_5_WIDTH = 5;
- private static final int COLUMN_72_WIDTH = 72;
-
-Index: src/org/eclipse/photran/internal/ui/editor/FortranFreeFormHorizontalRuler.java
-===================================================================
-RCS file: /cvsroot/technology/org.eclipse.photran/org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/FortranFreeFormHorizontalRuler.java,v
-retrieving revision 1.1
-diff -u -r1.1 FortranFreeFormHorizontalRuler.java
---- src/org/eclipse/photran/internal/ui/editor/FortranFreeFormHorizontalRuler.java 29 Sep 2005 19:08:24 -0000 1.1
-+++ src/org/eclipse/photran/internal/ui/editor/FortranFreeFormHorizontalRuler.java 16 Oct 2005 07:51:09 -0000
-@@ -7,7 +7,7 @@
- import org.eclipse.swt.widgets.Composite;
-
- /**
-- * @ author nchen
-+ * @author nchen
- * @author cheah
- *
- * Basic ruler that extends as wide as the editor
-Index: src/org/eclipse/photran/internal/ui/editor/FortranPartitionScanner.java
-===================================================================
-RCS file: /cvsroot/technology/org.eclipse.photran/org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/FortranPartitionScanner.java,v
-retrieving revision 1.1
-diff -u -r1.1 FortranPartitionScanner.java
---- src/org/eclipse/photran/internal/ui/editor/FortranPartitionScanner.java 29 Sep 2005 19:08:24 -0000 1.1
-+++ src/org/eclipse/photran/internal/ui/editor/FortranPartitionScanner.java 16 Oct 2005 07:51:10 -0000
-@@ -24,6 +24,7 @@
- import org.eclipse.photran.ui.FortranUIPlugin;
- import org.eclipse.swt.SWT;
- import org.eclipse.swt.graphics.Color;
-+import org.eclipse.swt.graphics.RGB;
-
- /**
- * Defines a lexer-based partition scanner for Fortran files.
-@@ -35,404 +36,399 @@
- * @author nchen
- * @author cheahcf
- */
--public final class FortranPartitionScanner implements IDocumentPartitioner
--{
-+public final class FortranPartitionScanner implements IDocumentPartitioner {
-
-- // ----- SET UP THE DIFFERENT TYPES OF PARTITIONS --------------------------
-+ // ----- SET UP THE DIFFERENT TYPES OF PARTITIONS --------------------------
-
-- static final String F90_STRING_CONSTANTS_PARTITION = "__fortran_string_constants";
-+ static final String F90_STRING_CONSTANTS_PARTITION = "__fortran_string_constants";
-
-- static final String F90_IDENTIFIER_PARTITION = "__fortran_identifier";
-+ static final String F90_IDENTIFIER_PARTITION = "__fortran_identifier";
-
-- static final String F90_KEYWORD_PARTITION = "__fortran_keyword";
--
-- static final String F90_CODE_PARTITION = "__fortran_code";
--
-- private IDocument doc;
--
-- private String filename;
--
-- private ArrayList partitions = null;
--
-- private boolean isFixedForm;
--
-- public static class Partition
-- {
-- protected String contentType;
--
-- protected ITokenScanner tokenScanner;
--
-- protected org.eclipse.jface.text.rules.Token token;
--
-- public Partition(String aContentType, TextAttribute color)
-- {
-- this.contentType = aContentType;
--
-- // Default token scanner: return the entire partition
-- // (there are no tokens within partitions)
--
-- RuleBasedScanner rbs = new RuleBasedScanner();
-- token = new org.eclipse.jface.text.rules.Token(color);
-- rbs.setDefaultReturnToken(token);
-- this.tokenScanner = rbs;
-- }
--
-- /**
-- * Each partition type has a unique name for its content type
-- *
-- * @return the content type for this partition (a String)
-- */
-- public final String getContentType()
-- {
-- return contentType;
-- }
--
-- /**
-- * @return a scanner that detects tokens within this type of partition.
-- */
-- public final ITokenScanner getTokenScanner()
-- {
-- return tokenScanner;
-- }
--
-- /**
-- * This token is used to change the color
-- *
-- * @return the token used for the current RuleBasedScanner
-- */
-- public org.eclipse.jface.text.rules.Token getToken()
-- {
-- return token;
-- }
-- }
--
-- // TODO-Nick: Refactor to be cleaner if there is a need for more types
-- private static IPreferenceStore store = FortranUIPlugin.getDefault().getPreferenceStore();
--
-- private static Partition[] partitionTypes = new Partition[] {
-- new Partition(
-- F90_STRING_CONSTANTS_PARTITION,
-- new TextAttribute(
-- new Color(
-- null,
-- PreferenceConverter
-- .getColor(
-- store,
-- ColorPreferencePage.F90_STRING_CONSTANTS_COLOR_PREF)))),
-- new Partition(
-- F90_IDENTIFIER_PARTITION,
-- new TextAttribute(
-- new Color(
-- null,
-- PreferenceConverter
-- .getColor(
-- store,
-- ColorPreferencePage.F90_IDENTIFIER_COLOR_PREF)))),
-- new Partition(
-- F90_CODE_PARTITION,
-- new TextAttribute(
-- new Color(
-- null,
-- PreferenceConverter
-- .getColor(
-- store,
-- ColorPreferencePage.F90_COMMENT_COLOR_PREF)))),
-- new Partition(
-- F90_KEYWORD_PARTITION,
-- new TextAttribute(
-- new Color(
-- null,
-- PreferenceConverter
-- .getColor(
-- store,
-- ColorPreferencePage.F90_KEYWORD_COLOR_PREF)),
-- null, SWT.BOLD)) };
--
-- IPropertyChangeListener colorPreferenceListener = new IPropertyChangeListener()
-- {
-- /*
-- * @see IPropertyChangeListener.propertyChange()
-- */
-- public void propertyChange(PropertyChangeEvent event)
-- {
-- if (ColorPreferencePage.respondToPreferenceChange(event))
-- {
-- updateColorPreferences();
-- documentChanged(null);
-- }
-- }
-- };
--
-- private void updateColorPreferences()
-- {
-- partitionTypes[0].getToken().setData(
-- new TextAttribute(new Color(null, PreferenceConverter.getColor(store,
-- ColorPreferencePage.F90_STRING_CONSTANTS_COLOR_PREF))));
-- partitionTypes[1].getToken().setData(
-- new TextAttribute(new Color(null, PreferenceConverter.getColor(store,
-- ColorPreferencePage.F90_IDENTIFIER_COLOR_PREF))));
-- partitionTypes[2].getToken().setData(
-- new TextAttribute(new Color(null, PreferenceConverter.getColor(store,
-- ColorPreferencePage.F90_COMMENT_COLOR_PREF))));
-- partitionTypes[3].getToken().setData(
-- new TextAttribute(new Color(null, PreferenceConverter.getColor(store,
-- ColorPreferencePage.F90_KEYWORD_COLOR_PREF)), null, SWT.BOLD));
-- }
--
-- /**
-- * Get a new FortranPartitionScanner Retains the doc if there is one
-- */
-- public FortranPartitionScanner(String filename, boolean isFixedForm)
-- {
-- // JO: Take the document filename as a parameter so that we can
-- // guess whether or not it's fixed form source
--
-- this.filename = filename;
-- this.isFixedForm = isFixedForm;
--
-- FortranUIPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(
-- colorPreferenceListener);
-- }
--
-- /**
-- * @return an array of FortranPartitionScanner.Partitions, each of which contains a name for its
-- * content type, a predicate for detecting that type of partition, and a rule for
-- * scanning tokens within that type of partition.
-- */
-- static final Partition[] getPartitionTypes()
-- {
-- return partitionTypes;
-- }
--
-- /**
-- * @return an array of Strings which identify the content types of the various types of
-- * partition for a photran file
-- */
-- static final String[] getContentTypes()
-- {
-- String[] contentTypes = new String[partitionTypes.length];
-- for (int i = 0; i < partitionTypes.length; i++)
-- contentTypes[i] = partitionTypes[i].getContentType();
-- return contentTypes;
-- }
--
-- /**
-- * @param terminal a terminal ID, from the Terminal class
-- * @return the name of the partition (one of the String constants above) corresponding to that
-- * terminal
-- */
-- private String mapTerminalToPartitionType(Terminal terminal)
-- {
-- if (terminal == Terminal.T_SCON) return F90_STRING_CONSTANTS_PARTITION;
-- if (terminal == Terminal.T_IDENT) return F90_IDENTIFIER_PARTITION;
--
-- return F90_KEYWORD_PARTITION;
-- }
--
-- /*
-- * (non-Javadoc)
-- *
-- * @see org.eclipse.jface.text.IDocumentPartitioner#connect(org.eclipse.jface.text.IDocument)
-- */
-- public void connect(IDocument document)
-- {
-- doc = document;
-- documentChanged(null);
-- }
--
-- /*
-- * (non-Javadoc)
-- *
-- * @see org.eclipse.jface.text.IDocumentPartitioner#disconnect()
-- */
-- public void disconnect()
-- {
-- doc = null;
-- }
--
-- /*
-- * (non-Javadoc)
-- *
-- * @see org.eclipse.jface.text.IDocumentPartitioner#documentAboutToBeChanged(org.eclipse.jface.text.DocumentEvent)
-- */
-- public void documentAboutToBeChanged(DocumentEvent event)
-- {
--
-- }
--
-- /*
-- * (non-Javadoc)
-- *
-- * @see org.eclipse.jface.text.IDocumentPartitioner#documentChanged(org.eclipse.jface.text.DocumentEvent)
-- */
-- public boolean documentChanged(DocumentEvent event)
-- {
-- // System.out.println("documentChanged");
-- int endOfLastPartition = -1;
-- // Get the text of the current document
-- String documentText = doc.get();
--
-- ArrayList newPartitions = new ArrayList();
--
-- try
-- {
-- // Run it through the lexer
-- ILexer lexer = Lexer.createLexer(new ByteArrayInputStream(doc.get()
-- .getBytes()), this.filename, isFixedForm);
--
-- // Create a partition for each token in the document, as well as
-- // a partition for the space between tokens
-- Token token;
-- Terminal terminal;
-- for (token = null, terminal = null; (terminal = (token = lexer.yylex()).getTerminal()) != Terminal.END_OF_INPUT;)
-- {
-- // JO: The fixed form lexer puts these in the stream
-- // out of order, and they don't really matter to us
-- // anyway since they're just whitespace
-- if (terminal == Terminal.T_EOS) continue;
--
-- int offset = token.getOffset();
-- int length = token.getLength();
-- String type = mapTerminalToPartitionType(terminal);
-- // we know that the parser is initialized and is scanning!
-- // but is it not returning the right offsets or the right types
-- // System.err.println("offset: " + offset + " length: " + length
-- // + " type: " + type + " text: " + token.getText());
--
-- // Is there space between the last partition and this one?
-- // Fill it!
-- if (endOfLastPartition < offset)
-- {
-- int beginningOfGap = endOfLastPartition + 1;
-- int lengthOfGap = offset - endOfLastPartition - 1;
-- newPartitions.add(new TypedRegion(beginningOfGap, lengthOfGap,
-- F90_CODE_PARTITION));
-- }
--
-- // And make a new partition
-- newPartitions.add(new TypedRegion(offset, length, type));
--
-- endOfLastPartition = offset + length - 1;
-- }
-- }
-- catch (FileNotFoundException e)
-- {
-- e.printStackTrace();
-- }
-- catch (Exception e1)
-- {
-- // Ignore lexer exceptions (e.g., unterminated string constant)
-- }
--
-- // Is there a gap between the last token and the end of the document?
-- // Assume it's code...
-- if (endOfLastPartition < documentText.length() - 1)
-- {
-- int beginningOfGap = endOfLastPartition + 1;
-- int lengthOfGap = documentText.length() - endOfLastPartition - 1;
-- newPartitions.add(new TypedRegion(beginningOfGap, lengthOfGap, F90_CODE_PARTITION));
-- }
--
-- // case for empty document
--
-- if (newPartitions.size() == 0)
-- newPartitions.add(new TypedRegion(0, 0, F90_CODE_PARTITION));
--
-- // We should return true iff the partitioning has changed
-- if (newPartitions.equals(partitions))
-- return false;
-- else
-- {
-- partitions = newPartitions;
--
-- return true;
-- }
-- }
--
-- /*
-- * (non-Javadoc)
-- *
-- * @see org.eclipse.jface.text.IDocumentPartitioner#getLegalContentTypes()
-- */
-- public String[] getLegalContentTypes()
-- {
-- return getContentTypes();
-- }
--
-- /*
-- * (non-Javadoc)
-- *
-- * @see org.eclipse.jface.text.IDocumentPartitioner#getContentType(int)
-- */
-- public String getContentType(int offset)
-- {
-- int partitionNum = findRegionContainingOffset(offset);
-- if (partitionNum >= 0)
-- return ((ITypedRegion)partitions.get(partitionNum)).getType();
-- else
-- // Assume it's part of some code...
-- return F90_CODE_PARTITION;
--
-- }
--
-- /*
-- * (non-Javadoc)
-- *
-- * @see org.eclipse.jface.text.IDocumentPartitioner#computePartitioning(int, int)
-- */
-- public ITypedRegion[] computePartitioning(int offset, int length)
-- {
--
-- int firstRegion = findRegionContainingOffset(offset);
-- int lastRegion = findRegionContainingOffset(offset + length - 1);
--
-- if (firstRegion < 0) throw new Error("No region contains start offset " + offset + "!");
-- if (lastRegion < 0) lastRegion = partitions.size() - 1;
--
-- ITypedRegion[] ret = new ITypedRegion[lastRegion - firstRegion + 1];
-- partitions.subList(firstRegion, lastRegion + 1).toArray(ret);
-- return ret;
-- }
--
-- /*
-- * (non-Javadoc)
-- *
-- * @see org.eclipse.jface.text.IDocumentPartitioner#getPartition(int)
-- */
-- public ITypedRegion getPartition(int offset)
-- {
-- int partitionNum = findRegionContainingOffset(offset);
--
-- ITypedRegion lastPartition = (ITypedRegion)partitions.get(partitions.size() - 1);
-- int lastOffsetOfLastPartition = lastPartition.getOffset() + lastPartition.getLength() - 1;
-- if (partitionNum < 0)
-- {
-- if (offset > lastOffsetOfLastPartition)
-- {
-- // Add a new partition to the end
-- int newPartitionStart = lastOffsetOfLastPartition + 1;
-- int newPartitionLength = offset - newPartitionStart + 1;
-- partitions.add(new TypedRegion(newPartitionStart, newPartitionLength,
-- F90_CODE_PARTITION));
-- partitionNum = partitions.size() - 1;
-- }
-- else
-- throw new Error("No region contains offset " + offset + "!");
-- }
--
-- return (ITypedRegion)partitions.get(partitionNum);
--
-- }
--
-- private int findRegionContainingOffset(int offset)
-- {
-- for (int i = 0; i < partitions.size(); i++)
-- {
-- ITypedRegion region = (ITypedRegion)partitions.get(i);
-- int firstCharOffset = region.getOffset();
-- int lastCharOffset = firstCharOffset + region.getLength() - 1;
-- if (firstCharOffset <= offset && lastCharOffset >= offset) return i;
-- }
-- return -1;
-- }
-+ static final String F90_KEYWORD_PARTITION = "__fortran_keyword";
-+
-+ static final String F90_CODE_PARTITION = "__fortran_code";
-+
-+ static final String F90_KEYWORD_PARTITION_WITH_INDENTATION_RIGHT = "__fortran_keyword_indentation_right";
-+
-+ static final String F90_KEYWORD_PARTITION_WITH_INDENTATION_LEFT = "__fortran_keyword_indentation_left";
-+
-+ private IDocument doc;
-+
-+ private String filename;
-+
-+ private ArrayList partitions = null;
-+
-+ private boolean isFixedForm;
-+
-+ public static class Partition {
-+ protected String contentType;
-+
-+ protected ITokenScanner tokenScanner;
-+
-+ protected org.eclipse.jface.text.rules.Token token;
-+
-+ public Partition(String aContentType, TextAttribute color) {
-+ this.contentType = aContentType;
-+
-+ // Default token scanner: return the entire partition
-+ // (there are no tokens within partitions)
-+
-+ RuleBasedScanner rbs = new RuleBasedScanner();
-+ token = new org.eclipse.jface.text.rules.Token(color);
-+ rbs.setDefaultReturnToken(token);
-+ this.tokenScanner = rbs;
-+ }
-+
-+ /**
-+ * Each partition type has a unique name for its content type
-+ *
-+ * @return the content type for this partition (a String)
-+ */
-+ public final String getContentType() {
-+ return contentType;
-+ }
-+
-+ /**
-+ * @return a scanner that detects tokens within this type of partition.
-+ */
-+ public final ITokenScanner getTokenScanner() {
-+ return tokenScanner;
-+ }
-+
-+ /**
-+ * This token is used to change the color
-+ *
-+ * @return the token used for the current RuleBasedScanner
-+ */
-+ public org.eclipse.jface.text.rules.Token getToken() {
-+ return token;
-+ }
-+ }
-+
-+ // TODO-Nick: Refactor to be cleaner if there is a need for more types
-+ private static IPreferenceStore store = FortranUIPlugin.getDefault()
-+ .getPreferenceStore();
-+
-+ private static Partition[] partitionTypes = new Partition[] {
-+ new Partition(
-+ F90_STRING_CONSTANTS_PARTITION,
-+ new TextAttribute(
-+ new Color(
-+ null,
-+ PreferenceConverter
-+ .getColor(
-+ store,
-+ ColorPreferencePage.F90_STRING_CONSTANTS_COLOR_PREF)))),
-+ new Partition(F90_IDENTIFIER_PARTITION, new TextAttribute(
-+ new Color(null, PreferenceConverter.getColor(store,
-+ ColorPreferencePage.F90_IDENTIFIER_COLOR_PREF)))),
-+ new Partition(F90_CODE_PARTITION, new TextAttribute(new Color(null,
-+ PreferenceConverter.getColor(store,
-+ ColorPreferencePage.F90_COMMENT_COLOR_PREF)))),
-+ new Partition(F90_KEYWORD_PARTITION, new TextAttribute(new Color(
-+ null, PreferenceConverter.getColor(store,
-+ ColorPreferencePage.F90_KEYWORD_COLOR_PREF)), null,
-+ SWT.BOLD)),
-+ new Partition(
-+ F90_KEYWORD_PARTITION_WITH_INDENTATION_RIGHT,
-+ new TextAttribute(
-+ new Color(null, PreferenceConverter.getColor(store,
-+ ColorPreferencePage.F90_KEYWORD_COLOR_PREF)),
-+ null, SWT.BOLD)),
-+ new Partition(
-+ F90_KEYWORD_PARTITION_WITH_INDENTATION_LEFT,
-+ new TextAttribute(
-+ new Color(null, PreferenceConverter.getColor(store,
-+ ColorPreferencePage.F90_KEYWORD_COLOR_PREF)),
-+ null, SWT.BOLD)) };
-+
-+ IPropertyChangeListener colorPreferenceListener = new IPropertyChangeListener() {
-+ /*
-+ * @see IPropertyChangeListener.propertyChange()
-+ */
-+ public void propertyChange(PropertyChangeEvent event) {
-+ if (ColorPreferencePage.respondToPreferenceChange(event)) {
-+ updateColorPreferences();
-+ documentChanged(null);
-+ }
-+ }
-+ };
-+
-+ private void updateColorPreferences() {
-+ partitionTypes[0].getToken().setData(
-+ new TextAttribute(new Color(null, PreferenceConverter.getColor(
-+ store,
-+ ColorPreferencePage.F90_STRING_CONSTANTS_COLOR_PREF))));
-+ partitionTypes[1]
-+ .getToken()
-+ .setData(
-+ new TextAttribute(
-+ new Color(
-+ null,
-+ PreferenceConverter
-+ .getColor(
-+ store,
-+ ColorPreferencePage.F90_IDENTIFIER_COLOR_PREF))));
-+ partitionTypes[2].getToken().setData(
-+ new TextAttribute(new Color(null, PreferenceConverter.getColor(
-+ store, ColorPreferencePage.F90_COMMENT_COLOR_PREF))));
-+ partitionTypes[3].getToken().setData(
-+ new TextAttribute(new Color(null, PreferenceConverter.getColor(
-+ store, ColorPreferencePage.F90_KEYWORD_COLOR_PREF)),
-+ null, SWT.BOLD));
-+ partitionTypes[4].getToken().setData(
-+ new TextAttribute(new Color(null, PreferenceConverter.getColor(
-+ store, ColorPreferencePage.F90_KEYWORD_COLOR_PREF)),
-+ null, SWT.BOLD));
-+ partitionTypes[5].getToken().setData(
-+ new TextAttribute(new Color(null, PreferenceConverter.getColor(
-+ store, ColorPreferencePage.F90_KEYWORD_COLOR_PREF)),
-+ null, SWT.BOLD));
-+
-+ }
-+
-+ /**
-+ * Get a new FortranPartitionScanner Retains the doc if there is one
-+ */
-+ public FortranPartitionScanner(String filename, boolean isFixedForm) {
-+ // JO: Take the document filename as a parameter so that we can
-+ // guess whether or not it's fixed form source
-+
-+ this.filename = filename;
-+ this.isFixedForm = isFixedForm;
-+
-+ FortranUIPlugin.getDefault().getPreferenceStore()
-+ .addPropertyChangeListener(colorPreferenceListener);
-+ }
-+
-+ /**
-+ * @return an array of FortranPartitionScanner.Partitions, each of which contains a name for its
-+ * content type, a predicate for detecting that type of partition, and a rule for
-+ * scanning tokens within that type of partition.
-+ */
-+ static final Partition[] getPartitionTypes() {
-+ return partitionTypes;
-+ }
-+
-+ /**
-+ * @return an array of Strings which identify the content types of the various types of
-+ * partition for a photran file
-+ */
-+ static final String[] getContentTypes() {
-+ String[] contentTypes = new String[partitionTypes.length];
-+ for (int i = 0; i < partitionTypes.length; i++)
-+ contentTypes[i] = partitionTypes[i].getContentType();
-+ return contentTypes;
-+ }
-+
-+ /**
-+ * @param terminal a terminal ID, from the Terminal class
-+ * @return the name of the partition (one of the String constants above) corresponding to that
-+ * terminal
-+ */
-+ private String mapTerminalToPartitionType(Terminal terminal) {
-+ if (terminal == Terminal.T_SCON)
-+ return F90_STRING_CONSTANTS_PARTITION;
-+ if (terminal == Terminal.T_IDENT)
-+ return F90_IDENTIFIER_PARTITION;
-+ if (ListOfWordsToIndent.checkIfKeywordNeedsRightIndentation(terminal))
-+ return F90_KEYWORD_PARTITION_WITH_INDENTATION_RIGHT;
-+ if (ListOfWordsToIndent.checkIfKeywordNeedsLeftIndentation(terminal))
-+ return F90_KEYWORD_PARTITION_WITH_INDENTATION_LEFT;
-+ return F90_KEYWORD_PARTITION;
-+ }
-+
-+ /*
-+ * (non-Javadoc)
-+ *
-+ * @see org.eclipse.jface.text.IDocumentPartitioner#connect(org.eclipse.jface.text.IDocument)
-+ */
-+ public void connect(IDocument document) {
-+ doc = document;
-+ documentChanged(null);
-+ }
-+
-+ /*
-+ * (non-Javadoc)
-+ *
-+ * @see org.eclipse.jface.text.IDocumentPartitioner#disconnect()
-+ */
-+ public void disconnect() {
-+ doc = null;
-+ }
-+
-+ /*
-+ * (non-Javadoc)
-+ *
-+ * @see org.eclipse.jface.text.IDocumentPartitioner#documentAboutToBeChanged(org.eclipse.jface.text.DocumentEvent)
-+ */
-+ public void documentAboutToBeChanged(DocumentEvent event) {
-+
-+ }
-+
-+ /*
-+ * (non-Javadoc)
-+ *
-+ * @see org.eclipse.jface.text.IDocumentPartitioner#documentChanged(org.eclipse.jface.text.DocumentEvent)
-+ */
-+ public boolean documentChanged(DocumentEvent event) {
-+ // System.out.println("documentChanged");
-+ int endOfLastPartition = -1;
-+ // Get the text of the current document
-+ String documentText = doc.get();
-+
-+ ArrayList newPartitions = new ArrayList();
-+
-+ try {
-+ // Run it through the lexer
-+ ILexer lexer = Lexer.createLexer(new ByteArrayInputStream(doc.get()
-+ .getBytes()), this.filename, isFixedForm);
-+
-+ // Create a partition for each token in the document, as well as
-+ // a partition for the space between tokens
-+ Token token;
-+ Terminal terminal;
-+ for (token = null, terminal = null; (terminal = (token = lexer
-+ .yylex()).getTerminal()) != Terminal.END_OF_INPUT;) {
-+ // JO: The fixed form lexer puts these in the stream
-+ // out of order, and they don't really matter to us
-+ // anyway since they're just whitespace
-+ if (terminal == Terminal.T_EOS)
-+ continue;
-+
-+ int offset = token.getOffset();
-+ int length = token.getLength();
-+ String type = mapTerminalToPartitionType(terminal);
-+ // we know that the parser is initialized and is scanning!
-+ // but is it not returning the right offsets or the right types
-+ // System.err.println("offset: " + offset + " length: " + length
-+ // + " type: " + type + " text: " + token.getText());
-+
-+ // Is there space between the last partition and this one?
-+ // Fill it!
-+ if (endOfLastPartition < offset) {
-+ int beginningOfGap = endOfLastPartition + 1;
-+ int lengthOfGap = offset - endOfLastPartition - 1;
-+ newPartitions.add(new TypedRegion(beginningOfGap,
-+ lengthOfGap, F90_CODE_PARTITION));
-+ }
-+
-+ // And make a new partition
-+ newPartitions.add(new TypedRegion(offset, length, type));
-+
-+ endOfLastPartition = offset + length - 1;
-+ }
-+ } catch (FileNotFoundException e) {
-+ e.printStackTrace();
-+ } catch (Exception e1) {
-+ // Ignore lexer exceptions (e.g., unterminated string constant)
-+ e1.printStackTrace();
-+ }
-+
-+ // Is there a gap between the last token and the end of the document?
-+ // Assume it's code...
-+ if (endOfLastPartition < documentText.length() - 1) {
-+ int beginningOfGap = endOfLastPartition + 1;
-+ int lengthOfGap = documentText.length() - endOfLastPartition - 1;
-+ newPartitions.add(new TypedRegion(beginningOfGap, lengthOfGap,
-+ F90_CODE_PARTITION));
-+ }
-+
-+ // case for empty document
-+
-+ if (newPartitions.size() == 0)
-+ newPartitions.add(new TypedRegion(0, 0, F90_CODE_PARTITION));
-+
-+ // We should return true iff the partitioning has changed
-+ if (newPartitions.equals(partitions))
-+ return false;
-+ else {
-+ partitions = newPartitions;
-+
-+ return true;
-+ }
-+ }
-+
-+ /*
-+ * (non-Javadoc)
-+ *
-+ * @see org.eclipse.jface.text.IDocumentPartitioner#getLegalContentTypes()
-+ */
-+ public String[] getLegalContentTypes() {
-+ return getContentTypes();
-+ }
-+
-+ /*
-+ * (non-Javadoc)
-+ *
-+ * @see org.eclipse.jface.text.IDocumentPartitioner#getContentType(int)
-+ */
-+ public String getContentType(int offset) {
-+ int partitionNum = findRegionContainingOffset(offset);
-+ if (partitionNum >= 0)
-+ return ((ITypedRegion) partitions.get(partitionNum)).getType();
-+ else
-+ // Assume it's part of some code...
-+ return F90_CODE_PARTITION;
-+
-+ }
-+
-+ /*
-+ * (non-Javadoc)
-+ *
-+ * @see org.eclipse.jface.text.IDocumentPartitioner#computePartitioning(int, int)
-+ */
-+ public ITypedRegion[] computePartitioning(int offset, int length) {
-+
-+ int firstRegion = findRegionContainingOffset(offset);
-+ int lastRegion = findRegionContainingOffset(offset + length - 1);
-+
-+ if (firstRegion < 0)
-+ throw new Error("No region contains start offset " + offset + "!");
-+ if (lastRegion < 0)
-+ lastRegion = partitions.size() - 1;
-+
-+ ITypedRegion[] ret = new ITypedRegion[lastRegion - firstRegion + 1];
-+ partitions.subList(firstRegion, lastRegion + 1).toArray(ret);
-+ return ret;
-+ }
-+
-+ /*
-+ * (non-Javadoc)
-+ *
-+ * @see org.eclipse.jface.text.IDocumentPartitioner#getPartition(int)
-+ */
-+ public ITypedRegion getPartition(int offset) {
-+ int partitionNum = findRegionContainingOffset(offset);
-+
-+ ITypedRegion lastPartition = (ITypedRegion) partitions.get(partitions
-+ .size() - 1);
-+ int lastOffsetOfLastPartition = lastPartition.getOffset()
-+ + lastPartition.getLength() - 1;
-+ if (partitionNum < 0) {
-+ if (offset > lastOffsetOfLastPartition) {
-+ // Add a new partition to the end
-+ int newPartitionStart = lastOffsetOfLastPartition + 1;
-+ int newPartitionLength = offset - newPartitionStart + 1;
-+ partitions.add(new TypedRegion(newPartitionStart,
-+ newPartitionLength, F90_CODE_PARTITION));
-+ partitionNum = partitions.size() - 1;
-+ } else
-+ throw new Error("No region contains offset " + offset + "!");
-+ }
-+
-+ return (ITypedRegion) partitions.get(partitionNum);
-+
-+ }
-+
-+ private int findRegionContainingOffset(int offset) {
-+ for (int i = 0; i < partitions.size(); i++) {
-+ ITypedRegion region = (ITypedRegion) partitions.get(i);
-+ int firstCharOffset = region.getOffset();
-+ int lastCharOffset = firstCharOffset + region.getLength() - 1;
-+ if (firstCharOffset <= offset && lastCharOffset >= offset)
-+ return i;
-+ }
-+ return -1;
-+ }
- }
-Index: src/org/eclipse/photran/internal/ui/editor/FortranSourceViewerConfiguration.java
-===================================================================
-RCS file: /cvsroot/technology/org.eclipse.photran/org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/FortranSourceViewerConfiguration.java,v
-retrieving revision 1.1
-diff -u -r1.1 FortranSourceViewerConfiguration.java
---- src/org/eclipse/photran/internal/ui/editor/FortranSourceViewerConfiguration.java 29 Sep 2005 19:08:24 -0000 1.1
-+++ src/org/eclipse/photran/internal/ui/editor/FortranSourceViewerConfiguration.java 16 Oct 2005 07:51:10 -0000
-@@ -3,7 +3,11 @@
- import java.util.ArrayList;
- import java.util.List;
-
-+import org.eclipse.cdt.internal.ui.text.CAutoIndentStrategy;
-+import org.eclipse.cdt.internal.ui.text.CCommentAutoIndentStrategy;
-+import org.eclipse.cdt.internal.ui.text.ICPartitions;
- import org.eclipse.jface.preference.IPreferenceStore;
-+import org.eclipse.jface.text.IAutoEditStrategy;
- import org.eclipse.jface.text.IDocument;
- import org.eclipse.jface.text.ITextDoubleClickStrategy;
- import org.eclipse.jface.text.TextAttribute;
-@@ -104,6 +108,16 @@
- ISourceViewer sourceViewer, String contentType) {
- return doubleClickStrategy;
- }
-+
-+ // ----- AUTO-INDENTING STRATEGY ------------------------------------------
-+ /* (non-Javadoc)
-+ * @see org.eclipse.jface.text.source.SourceViewerConfiguration#getAutoEditStrategies(org.eclipse.jface.text.source.ISourceViewer, java.lang.String)
-+ */
-+ public IAutoEditStrategy[] getAutoEditStrategies(ISourceViewer sourceViewer, String contentType) {
-+
-+
-+ return new IAutoEditStrategy[] {new FortranAutoIndentStrategy(editor instanceof FortranFreeFormEditor)};
-+ }
-
- // ----- SYNTAX HIGHLIGHTING -----------------------------------------------
-
-Index: src/org/eclipse/photran/internal/ui/editor/TabConverter.java
-===================================================================
-RCS file: /cvsroot/technology/org.eclipse.photran/org.eclipse.photran.ui/src/org/eclipse/photran/internal/ui/editor/TabConverter.java,v
-retrieving revision 1.1
-diff -u -r1.1 TabConverter.java
---- src/org/eclipse/photran/internal/ui/editor/TabConverter.java 29 Sep 2005 19:08:24 -0000 1.1
-+++ src/org/eclipse/photran/internal/ui/editor/TabConverter.java 16 Oct 2005 07:51:10 -0000
-@@ -8,6 +8,8 @@
- import org.eclipse.jface.text.IDocument;
- import org.eclipse.jface.text.ILineTracker;
- import org.eclipse.jface.text.IRegion;
-+import org.eclipse.jface.text.ITextSelection;
-+import org.eclipse.jface.viewers.ISelection;
-
- /**
- * @author nchen
-@@ -20,6 +22,7 @@
-
- private ILineTracker fLineTracker;
-
-+
- public TabConverter() {
- }
-
-@@ -49,11 +52,10 @@
- if (text == null)
- return;
-
-- int index = text.indexOf('\t');
-+ int index = text.indexOf('\t');// + text.indexOf('\n');
- if (index > -1) {
-
- StringBuffer buffer = new StringBuffer();
--
- fLineTracker.set(command.text);
- int lines = fLineTracker.getNumberOfLines();
-
-@@ -75,7 +77,7 @@
- int length = line.length();
- for (int j = 0; j < length; j++) {
- char c = line.charAt(j);
-- if (c == '\t') {
-+ if (c == '\t') { // a tab has been inserted
- position += insertTabString(buffer, position);
- } else {
- buffer.append(c);
-@@ -88,6 +90,7 @@
- command.text = buffer.toString();
-
- } catch (BadLocationException x) {
-+ x.printStackTrace();
- }
- }
- }
-Index: src/org/eclipse/photran/internal/ui/editor/FortranAutoIndentStrategy.java
-===================================================================
-RCS file: src/org/eclipse/photran/internal/ui/editor/FortranAutoIndentStrategy.java
-diff -N src/org/eclipse/photran/internal/ui/editor/FortranAutoIndentStrategy.java
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ src/org/eclipse/photran/internal/ui/editor/FortranAutoIndentStrategy.java 1 Jan 1970 00:00:00 -0000
-@@ -0,0 +1,189 @@
-+/*******************************************************************************
-+ * Copyright (c) 2000 2005 IBM Corporation and others.
-+ * All rights reserved. This program and the accompanying materials
-+ * are made available under the terms of the Eclipse Public License v1.0
-+ * which accompanies this distribution, and is available at
-+ * http://www.eclipse.org/legal/epl-v10.html
-+ *
-+ * Contributors:
-+ * IBM Corporation - initial API and implementation
-+ * QNX Software System
-+ *******************************************************************************/
-+package org.eclipse.photran.internal.ui.editor;
-+
-+import org.eclipse.jface.text.BadLocationException;
-+import org.eclipse.jface.text.DefaultIndentLineAutoEditStrategy;
-+import org.eclipse.jface.text.DocumentCommand;
-+import org.eclipse.jface.text.IDocument;
-+import org.eclipse.jface.text.IDocumentPartitioner;
-+import org.eclipse.jface.text.ITypedRegion;
-+import org.eclipse.photran.internal.core.f95parser.Terminal;
-+import org.eclipse.photran.internal.ui.preferences.FortranFreeFormSpacePreferencePage;
-+
-+import org.eclipse.cdt.ui.CUIPlugin;
-+
-+/**
-+ * Auto indent strategy sensitive to brackets.
-+ */
-+public class FortranAutoIndentStrategy extends
-+ DefaultIndentLineAutoEditStrategy {
-+
-+ private boolean isFreeForm;
-+
-+ public FortranAutoIndentStrategy(boolean isFreeForm) {
-+ this.isFreeForm = isFreeForm;
-+ }
-+
-+ protected void smartIndentAfterNewLine(IDocument d, DocumentCommand c) {
-+ int docLength = d.getLength();
-+ if (c.offset == -1 || docLength == 0)
-+ return;
-+
-+ try {
-+ int p = (c.offset == docLength ? c.offset - 1 : c.offset);
-+ int line = d.getLineOfOffset(p); // our current line
-+
-+ StringBuffer buf = new StringBuffer(c.text);
-+ int start = d.getLineOffset(line);
-+ int whiteend = findEndOfWhiteSpace(d, start, c.offset);
-+ buf.append(d.get(start, whiteend - start));
-+ if (isIndentRightWord(d, whiteend)) {
-+ buf.append('\t');
-+ }
-+ c.text = buf.toString();
-+
-+ } catch (BadLocationException excp) {
-+ excp.printStackTrace();
-+ }
-+ }
-+
-+ private boolean isIndentRightWord(IDocument doc, int firstChar) {
-+ // ITypedRegion = doc.getDocumentPartitioner().getPartition(firstChar);
-+ String partitionType = doc.getDocumentPartitioner().getPartition(
-+ firstChar).getType();
-+ if (partitionType
-+ .equals(FortranPartitionScanner.F90_KEYWORD_PARTITION_WITH_INDENTATION_RIGHT)) {
-+ return true;
-+ }
-+ return false;
-+ }
-+
-+ /**
-+ * Returns whether the text ends with one of the given search strings.
-+ */
-+ private boolean endsWithDelimiter(IDocument d, String txt) {
-+ String[] delimiters = d.getLegalLineDelimiters();
-+
-+ for (int i = 0; i < delimiters.length; i++) {
-+ if (txt.endsWith(delimiters[i]))
-+ return true;
-+ }
-+ return false;
-+ }
-+
-+ /**
-+ * @see IAutoIndentStrategy#customizeDocumentCommand
-+ */
-+ public void customizeDocumentCommand(IDocument d, DocumentCommand c) {
-+ if (c.length == 0 && c.text != null && endsWithDelimiter(d, c.text))
-+ smartIndentAfterNewLine(d, c);
-+ else if (soonToContainsEnd(d, c)) {
-+ smartUnindentAfterEnd(d, c);
-+ }
-+ }
-+
-+ /**
-+ * Unindents the line by the number indicated in the preference pane
-+ *
-+ * @param doc
-+ * @param command
-+ */
-+ private void smartUnindentAfterEnd(IDocument doc, DocumentCommand command) {
-+ if (command.offset == -1 || doc.getLength() == 0)
-+ return;
-+
-+ try {
-+ int p = (command.offset == doc.getLength() ? command.offset - 1
-+ : command.offset);
-+ int line = doc.getLineOfOffset(p);
-+ int startOfLineOffset = doc.getLineOffset(line);
-+ int whiteend = findEndOfWhiteSpace(doc, startOfLineOffset,
-+ command.offset);
-+
-+ if (whiteend != command.offset) {
-+
-+ int offsetOfLine = findEndOfWhiteSpace(doc, doc
-+ .getLineOffset(line), doc.getLineOffset(line)
-+ + doc.getLineLength(line));
-+ int numberOfSpacesOnLeft = offsetOfLine
-+ - doc.getLineOffset(line);
-+
-+ if (isFreeForm)
-+ numberOfSpacesOnLeft -= FortranFreeFormSpacePreferencePage
-+ .getTabSize();
-+ else
-+ numberOfSpacesOnLeft -= FortranFixedFormEditor.COLUMM_6_WIDTH;
-+
-+ if (numberOfSpacesOnLeft >= 0) {
-+ // convert to number of spaces
-+ String spaces = "";
-+ for (int i = 0; i < numberOfSpacesOnLeft; i++)
-+ spaces += " ";
-+
-+ StringBuffer replaceText = new StringBuffer(spaces);
-+
-+ // add the rest of the current line including the just added
-+ replaceText.append(doc.get(whiteend, command.offset
-+ - whiteend));
-+ replaceText.append(command.text);
-+ // modify document command
-+ command.length = command.offset - startOfLineOffset;
-+ command.offset = startOfLineOffset;
-+ command.text = replaceText.toString();
-+ }
-+ }
-+ } catch (BadLocationException excp) {
-+ excp.printStackTrace();
-+ }
-+
-+ }
-+
-+ /**
-+ * Returns true if after inserting the current character we have end
-+ *
-+ * @param doc
-+ * @param command
-+ * @return whether we have end
-+ *
-+ * Using simple character mathing instead of the parser so that it works
-+ * even if the lexer is not available; in the case of Free Form with more
-+ * than a 1000 lines
-+ */
-+ private boolean soonToContainsEnd(IDocument doc, DocumentCommand command) {
-+ if (command.offset == -1 || doc.getLength() == 0)
-+ return false;
-+
-+ try {
-+ // convert all matches to lowercase since
-+ int commandOffset = (command.offset == doc.getLength() ? command.offset - 1
-+ : command.offset);
-+ int line = doc.getLineOfOffset(commandOffset); // our current line
-+ int start = doc.getLineOffset(line);
-+ int whiteend = findEndOfWhiteSpace(doc, start, command.offset);
-+
-+ // if c equals d and after appending this we have "end"
-+ if ("d".equals(command.text.toLowerCase())) {
-+ int end = doc.getLineOffset(line) + doc.getLineLength(line)
-+ - whiteend;
-+ if (doc.get(whiteend, end).toLowerCase().equals("en")) {
-+ return true;
-+ }
-+ }
-+ } catch (BadLocationException e) {
-+ e.printStackTrace();
-+ }
-+ return false;
-+
-+ }
-+
-+}
-Index: src/org/eclipse/photran/internal/ui/editor/ListOfWordsToIndent.java
-===================================================================
-RCS file: src/org/eclipse/photran/internal/ui/editor/ListOfWordsToIndent.java
-diff -N src/org/eclipse/photran/internal/ui/editor/ListOfWordsToIndent.java
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ src/org/eclipse/photran/internal/ui/editor/ListOfWordsToIndent.java 1 Jan 1970 00:00:00 -0000
-@@ -0,0 +1,111 @@
-+package org.eclipse.photran.internal.ui.editor;
-+
-+import java.util.HashSet;
-+
-+import org.eclipse.photran.internal.core.f95parser.Terminal;
-+
-+/**
-+ * @author nchen
-+ * @author cheah
-+ *
-+ * This returns an hashtable of words that require indentation in Fortran The
-+ * FortranPartitionScanner class would then make use of it as it checks to see
-+ * if we will auto-indent or not.
-+ *
-+ */
-+public class ListOfWordsToIndent {
-+
-+ /**
-+ * @author cheah
-+ * @author nchen
-+ *
-+ * This class stores a tuple
-+ */
-+ static class Pair {
-+ public Object fFirst = null;
-+
-+ public Object fSecond = null;
-+
-+ public Pair(Object first, Object second) {
-+ fFirst = first;
-+ fSecond = second;
-+ }
-+
-+ /*
-+ * String accessors
-+ */
-+ public String firstAsString() {
-+ return (String) fFirst;
-+ }
-+
-+ public String secondAsString() {
-+ return (String) fSecond;
-+ }
-+ }
-+
-+ // Augment this list as necessary
-+ private static Pair[] fortranKeywordsPairs = new Pair[] {
-+ new Pair(Terminal.T_PROGRAM, Terminal.T_ENDPROGRAM),
-+ new Pair(Terminal.T_FUNCTION, Terminal.T_ENDFUNCTION),
-+ new Pair(Terminal.T_SUBROUTINE, Terminal.T_ENDSUBROUTINE),
-+ new Pair(Terminal.T_MODULE, Terminal.T_ENDMODULE),
-+ new Pair(Terminal.T_BLOCKDATA, Terminal.T_ENDBLOCKDATA),
-+ new Pair(Terminal.T_TYPE, Terminal.T_ENDTYPE),
-+ new Pair(Terminal.T_FORALL, Terminal.T_ENDFORALL),
-+ new Pair(Terminal.T_WHERE, Terminal.T_ENDWHERE),
-+ new Pair(Terminal.T_ELSEWHERE, Terminal.T_ENDWHERE),
-+ new Pair(Terminal.T_IF, Terminal.T_ENDIF),
-+ new Pair(Terminal.T_ELSEIF, Terminal.T_ENDIF),
-+ new Pair(Terminal.T_SELECTCASE, Terminal.T_ENDSELECT),
-+ new Pair(Terminal.T_CASE, Terminal.T_END),
-+ new Pair(Terminal.T_DO, Terminal.T_ENDDO),
-+ new Pair(Terminal.T_INTERFACE, Terminal.T_ENDINTERFACE) };
-+
-+ private static HashSet wordsToIndentRight = new HashSet();
-+
-+ private static HashSet wordsToIndentLeft = new HashSet();
-+
-+ private static ListOfWordsToIndent uniqueInstance;
-+
-+ // Singleton
-+ private ListOfWordsToIndent() {
-+ //generate the hashtable from the list of keywords
-+ for (int index = 0; index < fortranKeywordsPairs.length; index++) {
-+ wordsToIndentRight.add((Terminal)(fortranKeywordsPairs[index].fFirst));
-+ }
-+
-+ // add the one and only terminal to indent left
-+ wordsToIndentLeft.add((Terminal)Terminal.T_END);
-+ }
-+
-+ /**
-+ * Singleton implementation
-+ * @return the unique instance
-+ */
-+ public static ListOfWordsToIndent getListOfWordsToIndentInstance() {
-+ if (uniqueInstance == null)
-+ uniqueInstance = new ListOfWordsToIndent();
-+
-+ return uniqueInstance;
-+ }
-+
-+ /**
-+ * Checks to see if the keyword causes indentation
-+ * @param terminal
-+ * @return
-+ */
-+ public static boolean checkIfKeywordNeedsRightIndentation(Terminal terminal) {
-+ return getListOfWordsToIndentInstance().wordsToIndentRight
-+ .contains(terminal);
-+ }
-+
-+ /**
-+ * Checks to see if the keyword causes indentation
-+ * @param terminal
-+ * @return
-+ */
-+ public static boolean checkIfKeywordNeedsLeftIndentation(Terminal terminal) {
-+ return getListOfWordsToIndentInstance().wordsToIndentLeft
-+ .contains(terminal);
-+ }
-+}
-
-
diff --git a/org.eclipse.photran-samples/.cdtproject b/org.eclipse.photran-samples/.cdtproject
deleted file mode 100644
index 8802934..0000000
--- a/org.eclipse.photran-samples/.cdtproject
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse-cdt version="2.0"?>
-
-<cdtproject id="org.eclipse.cdt.make.core.make">
-<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
-<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
-<extension id="org.eclipse.cdt.core.XCOFF32" point="org.eclipse.cdt.core.BinaryParser">
-<attribute key="addr2line" value="addr2line"/>
-<attribute key="c++filt" value="c++filt"/>
-</extension>
-<extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser">
-<attribute key="addr2line" value="addr2line"/>
-<attribute key="c++filt" value="c++filt"/>
-</extension>
-<extension id="org.eclipse.cdt.core.Cygwin_PE" point="org.eclipse.cdt.core.BinaryParser">
-<attribute key="addr2line" value="addr2line"/>
-<attribute key="cygpath" value="cygpath"/>
-<attribute key="c++filt" value="c++filt"/>
-<attribute key="nm" value="nm"/>
-</extension>
-<extension id="org.eclipse.cdt.core.MachO" point="org.eclipse.cdt.core.BinaryParser">
-<attribute key="c++filt" value="c++filt"/>
-</extension>
-<extension id="org.eclipse.cdt.core.nullindexer" point="org.eclipse.cdt.core.CIndexer"/>
-<data>
-<item id="scannerConfiguration">
-<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="false" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-</item>
-<item id="org.eclipse.cdt.core.pathentry">
-<pathentry kind="out" path=""/>
-<pathentry kind="con" path="org.eclipse.cdt.make.core.DISCOVERED_SCANNER_INFO"/>
-<pathentry kind="src" path="src-fixed-form"/>
-<pathentry kind="src" path="src-fortran-and-c"/>
-<pathentry kind="src" path="src-gaussian-elimination"/>
-<pathentry kind="src" path="src-includes"/>
-<pathentry kind="src" path="src-language-features"/>
-<pathentry kind="src" path="src-line-fitting"/>
-<pathentry kind="src" path="src-modules"/>
-<pathentry kind="src" path="src-scoping"/>
-<pathentry kind="src" path="src-implicits-1"/>
-<pathentry kind="src" path="src-implicits-2"/>
-<pathentry kind="src" path="src-implicits-3"/>
-</item>
-<item id="org.eclipse.cdt.make.core.buildtargets">
-<buildTargets>
-<target name="all" path="" targetID="org.eclipse.cdt.make.MakeTargetBuilder">
-<buildCommand>make</buildCommand>
-<buildArguments></buildArguments>
-<buildTarget>all</buildTarget>
-<stopOnError>false</stopOnError>
-<useDefaultCommand>true</useDefaultCommand>
-</target>
-<target name="clean" path="" targetID="org.eclipse.cdt.make.MakeTargetBuilder">
-<buildCommand>make</buildCommand>
-<buildArguments></buildArguments>
-<buildTarget>clean</buildTarget>
-<stopOnError>false</stopOnError>
-<useDefaultCommand>true</useDefaultCommand>
-</target>
-</buildTargets>
-</item>
-</data>
-</cdtproject>
diff --git a/org.eclipse.photran-samples/.cproject b/org.eclipse.photran-samples/.cproject
deleted file mode 100644
index bbf21ac..0000000
--- a/org.eclipse.photran-samples/.cproject
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?fileVersion 4.0.0?>
-
-<cproject>
-<storageModule moduleId="org.eclipse.cdt.core.settings">
-<cconfiguration id="converted.config.1543524045">
-<storageModule moduleId="scannerConfiguration">
-<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="false" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-</storageModule>
-
-
-<storageModule buildSystemId="org.eclipse.cdt.core.defaultConfigDataProvider" id="converted.config.1543524045" moduleId="org.eclipse.cdt.core.settings" name="convertedConfig">
-<externalSettings/>
-<extensions>
-<extension id="org.eclipse.cdt.core.nullindexer" point="org.eclipse.cdt.core.CIndexer"/>
-<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
-<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
-<extension id="org.eclipse.cdt.core.XCOFF32" point="org.eclipse.cdt.core.BinaryParser"/>
-<extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
-<extension id="org.eclipse.cdt.core.Cygwin_PE" point="org.eclipse.cdt.core.BinaryParser"/>
-<extension id="org.eclipse.cdt.core.MachO" point="org.eclipse.cdt.core.BinaryParser"/>
-</extensions>
-</storageModule>
-
-<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
-<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
-
-
-<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
-<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
-<buildTargets>
-<target name="all" path="" targetID="org.eclipse.cdt.make.MakeTargetBuilder">
-<buildCommand>make</buildCommand>
-<buildArguments/>
-<buildTarget>all</buildTarget>
-<stopOnError>false</stopOnError>
-<useDefaultCommand>true</useDefaultCommand>
-<runAllBuilders>true</runAllBuilders>
-</target>
-<target name="clean" path="" targetID="org.eclipse.cdt.make.MakeTargetBuilder">
-<buildCommand>make</buildCommand>
-<buildArguments/>
-<buildTarget>clean</buildTarget>
-<stopOnError>false</stopOnError>
-<useDefaultCommand>true</useDefaultCommand>
-<runAllBuilders>true</runAllBuilders>
-</target>
-<target name="all" path="src-fortran2003" targetID="org.eclipse.cdt.make.MakeTargetBuilder">
-<buildCommand>make</buildCommand>
-<buildArguments/>
-<buildTarget>all</buildTarget>
-<stopOnError>false</stopOnError>
-<useDefaultCommand>true</useDefaultCommand>
-<runAllBuilders>true</runAllBuilders>
-</target>
-<target name="clean" path="src-fortran2003" targetID="org.eclipse.cdt.make.MakeTargetBuilder">
-<buildCommand>make</buildCommand>
-<buildArguments/>
-<buildTarget>clean</buildTarget>
-<stopOnError>false</stopOnError>
-<useDefaultCommand>true</useDefaultCommand>
-<runAllBuilders>true</runAllBuilders>
-</target>
-</buildTargets>
-</storageModule>
-<storageModule moduleId="org.eclipse.cdt.core.pathentry">
-<pathentry kind="out" path=""/>
-<pathentry kind="con" path="org.eclipse.cdt.make.core.DISCOVERED_SCANNER_INFO"/>
-<pathentry kind="src" path="src-fixed-form-1"/>
-<pathentry kind="src" path="src-fixed-form-2"/>
-<pathentry kind="src" path="src-fortran-and-c"/>
-<pathentry kind="src" path="src-fortran2003"/>
-<pathentry kind="src" path="src-gaussian-elimination"/>
-<pathentry kind="src" path="src-includes"/>
-<pathentry kind="src" path="src-language-features"/>
-<pathentry kind="src" path="src-liebmann-1-eoshift"/>
-<pathentry kind="src" path="src-liebmann-2-arrays"/>
-<pathentry kind="src" path="src-liebmann-3-loops"/>
-<pathentry kind="src" path="src-line-fitting"/>
-<pathentry kind="src" path="src-modules"/>
-<pathentry kind="src" path="src-scoping"/>
-<pathentry kind="src" path="src-implicits-1"/>
-<pathentry kind="src" path="src-implicits-2"/>
-<pathentry kind="src" path="src-implicits-3"/>
-<pathentry kind="src" path="src-common"/>
-<pathentry kind="src" path="src-cray-pointers"/>
-<pathentry kind="src" path="src-interfaces"/>
-</storageModule>
-</cconfiguration>
-</storageModule>
-</cproject>
diff --git a/org.eclipse.photran-samples/.project b/org.eclipse.photran-samples/.project
deleted file mode 100644
index 39247cb..0000000
--- a/org.eclipse.photran-samples/.project
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.photran-samples</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.cdt.make.core.makeBuilder</name>
- <triggers>clean,full,incremental,</triggers>
- <arguments>
- <dictionary>
- <key>org.eclipse.cdt.core.errorOutputParser</key>
- <value>org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.VCErrorParser;org.eclipse.photran.core.intel.IntelCompilerErrorParser;org.eclipse.photran.core.AbsoftErrorParser;org.eclipse.photran.core.XLFErrorParser;org.eclipse.photran.core.GFortranErrorParser;org.eclipse.photran.core.IntelFortranErrorParser;org.eclipse.photran.core.LaheyFortranErrorParser;org.eclipse.photran.core.G95FortranErrorParser;org.eclipse.photran.core.NAGErrorParser;org.eclipse.photran.core.PGIErrorParser;org.eclipse.photran.errorparsers.xlf.XLFCompilerErrorParser;</value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.append_environment</key>
- <value>true</value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.build.arguments</key>
- <value></value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.build.command</key>
- <value>make</value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.build.location</key>
- <value></value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.build.target.auto</key>
- <value>all</value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.build.target.clean</key>
- <value>clean</value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.build.target.inc</key>
- <value>all</value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
- <value>false</value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
- <value>true</value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.enableFullBuild</key>
- <value>true</value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.enabledIncrementalBuild</key>
- <value>true</value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.environment</key>
- <value></value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.stopOnError</key>
- <value>false</value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
- <value>true</value>
- </dictionary>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.cdt.make.core.ScannerConfigBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.cdt.core.cnature</nature>
- <nature>org.eclipse.cdt.make.core.makeNature</nature>
- <nature>org.eclipse.cdt.make.core.ScannerConfigNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.photran-samples/.settings/org.eclipse.cdt.core.prefs b/org.eclipse.photran-samples/.settings/org.eclipse.cdt.core.prefs
deleted file mode 100644
index b208aeb..0000000
--- a/org.eclipse.photran-samples/.settings/org.eclipse.cdt.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Wed Aug 15 15:14:22 MDT 2007
-eclipse.preferences.version=1
-indexer/indexerId=org.eclipse.cdt.core.nullindexer
-indexerId=org.eclipse.cdt.core.nullindexer
diff --git a/org.eclipse.photran-samples/.settings/scoped_pref_store.prefs b/org.eclipse.photran-samples/.settings/scoped_pref_store.prefs
deleted file mode 100644
index 40c0f9b..0000000
--- a/org.eclipse.photran-samples/.settings/scoped_pref_store.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-#Mon Jul 27 12:02:55 CDT 2009
-EnableContentAssist=true
-EnableDeclView=true
-EnableHoverTip=true
-EnableVPG=true
-eclipse.preferences.version=1
diff --git a/org.eclipse.photran-samples/Makefile b/org.eclipse.photran-samples/Makefile
deleted file mode 100644
index 35b9b86..0000000
--- a/org.eclipse.photran-samples/Makefile
+++ /dev/null
@@ -1,63 +0,0 @@
-# Generic makefile deletes all programs corresponding to .f90 files and rebuilds them
-# Expects to run under bash
-#
-# Jeff Overbey
-#
-# Note - pattern substitution: $(patsubst %.f90,%.exe,$(wildcard *.f90))
-
-# Command to run your Fortran compiler
-FORTRAN=`which gfortran ifort 2>/dev/null | head -1`
-DEBUGSWITCH=-g
-INCLUDESWITCH=-I
-LIBSWITCH=-L
-CRAYSWITCH=-fcray-pointer
-OPTSWITCH=-O4
-OUTSWITCH=-o
-EXEFILE=a.exe
-
-# In each of these directories, all of the sources will be compiled into a single executable
-#SRCDIRS=$(filter-out src-fortran2003, $(wildcard src-*))
-SRCDIRS=$(wildcard src-*)
-
-# Here we do not use $(wildcard) to delay expansion until the shell is invoked
-SRCFILES=*.f*
-OBJFILES=*.o *.obj
-OTHERFILES=*.mod *.fwd *.map *.ydg
-EXEFILES=$(EXEFILE) *.exe
-
-all: clean build
-
-clean:
- for dir in $(SRCDIRS) .; do \
- cd $$dir; \
- rm -f $(OBJFILES) >/dev/null 2>&1; \
- rm -f $(OTHERFILES) >/dev/null 2>&1; \
- rm -f $(EXEFILES) >/dev/null 2>&1; \
- cd ..; \
- done
-
-build:
- @echo "=====>" Using compiler $(FORTRAN)
- @for dir in $(SRCDIRS); do \
- if [ -e $$dir/Makefile ]; then \
- $(MAKE) -C $$dir; \
- else \
- echo "=====>" Begin compiling sources in $$dir; \
- $(FORTRAN) $(DEBUGSWITCH) \
- $(OUTSWITCH) $$dir/$(EXEFILE) \
- $(INCLUDESWITCH). \
- $(INCLUDESWITCH)$$dir \
- $(LIBSWITCH). \
- $(LIBSWITCH)$$dir \
- $(OPTSWITCH) \
- $(CRAYSWITCH) \
- $$dir/$(SRCFILES); \
- echo "<=====" Done compiling sources in $$dir; \
- fi \
- done
- @for dir in $(SRCDIRS) .; do \
- cd $$dir; \
- rm -f $(OBJFILES) >/dev/null 2>&1; \
- rm -f $(OTHERFILES) >/dev/null 2>&1; \
- cd ..; \
- done
diff --git a/org.eclipse.photran-samples/liebmann-viz.gif b/org.eclipse.photran-samples/liebmann-viz.gif
deleted file mode 100644
index f0a3886..0000000
--- a/org.eclipse.photran-samples/liebmann-viz.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.photran-samples/liebmann-viz.sh b/org.eclipse.photran-samples/liebmann-viz.sh
deleted file mode 100644
index c8216af..0000000
--- a/org.eclipse.photran-samples/liebmann-viz.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh
-#
-# Runs src-liebmann-3-loops/a.exe, which outputs a 2-D matrix of real numbers,
-# and then feeds this matrix to gnuplot to generate a visualization, which
-# is saved as liebmann-viz.gif.
-#
-# J. Overbey 8/27/08
-#
-
-src-liebmann-3*/a.exe >data
-
-cat <<EOF | gnuplot
-#==GNUPLOT INPUT=================================================================
-set term gif
-set output "liebmann-viz.gif"
-
-#set pm3d # 1a. Normal
- set pm3d map # 1b. Display a 2-D color gradient rather than the 3-D visualization
-#set pm3d at b # 1c. Display a 2-D color gradient under the 3-D visualization
-
-# # 2a. Nothing = Black to yellow via blue and red
-#set palette model XYZ functions gray**0.35, gray**0.5, gray**0.8 # 2b. Brown to yellow
- set palette model XYZ functions gray**0.3, gray**0.5, 0 # 2b. Dark red to yellow (Jeff)
-#set palette model XYZ functions gray**0.8, gray**0.5, gray**0.35 # 2c. Green to yellow
-#set palette rgbformulae 21,22,23 # 2d. Black to red to yellow to white
-#set palette rgbformulae 22,13,-31 # 2e. Blue to green to yellow to red
-#set palette defined (0 "black", 2.5 "red", 5 "yellow")
-
- splot 'data' matrix notitle # 3a. Plot normally
-#splot 'data' matrix notitle with pm3d # 3b. Colorize the 3-D visualization (set 1a above)
-
-#================================================================================
-EOF
-
-rm -f data
-
-echo "Visualization saved as liebmann-viz.gif"
-
-if [ `uname -s` == "Darwin" ]; then
- open liebmann-viz.gif
-elif [ `which eog` != "" ]; then
- eog liebmann-viz.gif
-fi
diff --git a/org.eclipse.photran-samples/src-common/.cvsignore b/org.eclipse.photran-samples/src-common/.cvsignore
deleted file mode 100644
index 2e87cbd..0000000
--- a/org.eclipse.photran-samples/src-common/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-a.exe
diff --git a/org.eclipse.photran-samples/src-common/change_c.f90 b/org.eclipse.photran-samples/src-common/change_c.f90
deleted file mode 100644
index d028d90..0000000
--- a/org.eclipse.photran-samples/src-common/change_c.f90
+++ /dev/null
@@ -1,9 +0,0 @@
-subroutine change_c
- implicit none
-
- ! Now k is the same as c in main.f90
- common /common/ k
- complex :: k
-
- k = (5,6)
-end subroutine
diff --git a/org.eclipse.photran-samples/src-common/main.f90 b/org.eclipse.photran-samples/src-common/main.f90
deleted file mode 100644
index d322922..0000000
--- a/org.eclipse.photran-samples/src-common/main.f90
+++ /dev/null
@@ -1,50 +0,0 @@
-!!
-!! Demonstrates COMMON block nightmare
-!!
-!! J. Overbey 8/18/08
-!!
-program main
- implicit none
-
- external change_c
-
- common a, b
- integer :: a
- real :: b
-
- common /common/ c, d, e /common2/ f, g, /common3/ h
- complex :: c
- dimension c(3)
- ! double precision :: d, e, f, g, h
- double precision :: d
- double precision :: e
- double precision :: f
- double precision :: g
- double precision :: h
-
- a = 1
- b = 2.3
- c = (4,5)
- print *, a, b, c
-
- call change_ab
- call change_c
-
- print *, "Now the first two variables below should have garbage values"
- print *, "and the third should be (5,6):"
- print *, a, b, c
-end program
-
-subroutine change_ab
- implicit none
-
- ! q and r are stored at the same place in memory as a and b above,
- ! but they have the wrong types
- common q, r
- real :: q
- integer :: r
-
- q = 4.5
- r = 6
- print *, q, r
-end subroutine
diff --git a/org.eclipse.photran-samples/src-cray-pointers/.cvsignore b/org.eclipse.photran-samples/src-cray-pointers/.cvsignore
deleted file mode 100644
index 2e87cbd..0000000
--- a/org.eclipse.photran-samples/src-cray-pointers/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-a.exe
diff --git a/org.eclipse.photran-samples/src-cray-pointers/cray-pointers.f90 b/org.eclipse.photran-samples/src-cray-pointers/cray-pointers.f90
deleted file mode 100644
index cc6ac70..0000000
--- a/org.eclipse.photran-samples/src-cray-pointers/cray-pointers.f90
+++ /dev/null
@@ -1,46 +0,0 @@
-! Examples using Cray pointers (non-standard extension)
-! Jeff Overbey 8/27/08
-
-implicit none
-
-call example1
-call example2
-call example3
-end
-
-! Example 1: Pointer to scalar
-subroutine example1()
- integer :: pointer ! A Cray pointer is just an integer
- pointer (pointer, pointee) ! We associate the pointer variable with another variable
- real :: pointee ! To dereference the pointer, we read this variable
-
- real :: value = 5.0
-
- pointer = loc(value)
- print *, pointee ! = 5.0
-end subroutine
-
-! Example 2: Pointer to array, constant size
-subroutine example2()
- integer :: pointer
- real :: pointee
- pointer (pointer, pointee(5))
-
- real :: array(5) = (/ 1.1, 2.2, 3.3, 4.4, 5.5 /)
-
- pointer = loc(array)
- print *, pointee(3) ! = 3.3
-end subroutine
-
-! Example 3: Pointer to array, arbitrary size
-subroutine example3()
- integer :: pointer
- real :: pointee
- pointer (pointer, pointee(*))
-
- real :: array(5) = (/ 1.1, 2.2, 3.3, 4.4, 5.5 /)
-
- pointer = loc(array)
- print *, pointee(-2) ! = 3.3
- print *, pointee(3) ! = 3.3
-end subroutine
diff --git a/org.eclipse.photran-samples/src-fixed-form-1/.cvsignore b/org.eclipse.photran-samples/src-fixed-form-1/.cvsignore
deleted file mode 100644
index 2e87cbd..0000000
--- a/org.eclipse.photran-samples/src-fixed-form-1/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-a.exe
diff --git a/org.eclipse.photran-samples/src-fixed-form-1/hello.f b/org.eclipse.photran-samples/src-fixed-form-1/hello.f
deleted file mode 100755
index 5e515bd..0000000
--- a/org.eclipse.photran-samples/src-fixed-form-1/hello.f
+++ /dev/null
@@ -1,14 +0,0 @@
-c Ugly fixed form hello world program demonstrates intelligent syntax highlighting
- programasampleprogram
- implicitreal(i)
- if=0.0
- if(sine(if).lt..00001)then Variable if
- print*,'Hello, old-school Fortran!'
- endif
- stop
- c o n t a i n s
- realfunctionsine(x)
- real,intent(in)::x
- sine=sin(x)
- endfunction
- endprogramasampleprogram
\ No newline at end of file
diff --git a/org.eclipse.photran-samples/src-fixed-form-2/.cvsignore b/org.eclipse.photran-samples/src-fixed-form-2/.cvsignore
deleted file mode 100644
index 66fec5b..0000000
--- a/org.eclipse.photran-samples/src-fixed-form-2/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*.exe
-*.mod
diff --git a/org.eclipse.photran-samples/src-fixed-form-2/Makefile b/org.eclipse.photran-samples/src-fixed-form-2/Makefile
deleted file mode 100644
index 8eb26a6..0000000
--- a/org.eclipse.photran-samples/src-fixed-form-2/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-# gfortran 4.4.0 cannot parse sample.f, so only compile if Intel Fortran is available
-
-.PHONY: all clean
-
-SRC=sample.f
-
-IFORT=`which ifort 2>/dev/null | head -1`
-DEBUGSWITCH=-g
-OPTSWITCH=-O4
-OUTSWITCH=-o
-
-all:
- @if [ "$(IFORT)" != "" ]; then \
- for file in $(SRC); do \
- $(IFORT) $(DEBUGSWITCH) \
- $(OUTSWITCH) `echo $$file | sed -e 's/.f/.exe/'` \
- $(OPTSWITCH) \
- $$file; \
- done; \
- fi
-
-clean:
- rm -f *.exe *.mod
\ No newline at end of file
diff --git a/org.eclipse.photran-samples/src-fixed-form-2/sample.f b/org.eclipse.photran-samples/src-fixed-form-2/sample.f
deleted file mode 100644
index ea1288d..0000000
--- a/org.eclipse.photran-samples/src-fixed-form-2/sample.f
+++ /dev/null
@@ -1,14 +0,0 @@
- program blah
- integer :: xyz,y
- xy sdfgsdfgsd
- $ z = 3
- y = 5
- if(sin(y+0.0)
- $ .lt.x)then Variable cr
- print*,'Hello, old-school Fortran!'
- endif
- end pro
- $ gram
-
-
-
diff --git a/org.eclipse.photran-samples/src-fortran-and-c/Makefile b/org.eclipse.photran-samples/src-fortran-and-c/Makefile
deleted file mode 100644
index 99ecf1a..0000000
--- a/org.eclipse.photran-samples/src-fortran-and-c/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-# Requires g95 under Windows (since calling a C function; proprietary)
-
-clean:
- rm -f a.exe *.o
-
-all:
- gcc -g -c c.c
- g95 -g -c fortran.f90
- g95 -o a.exe c.o fortran.o
- rm *.o
diff --git a/org.eclipse.photran-samples/src-fortran-and-c/c.c b/org.eclipse.photran-samples/src-fortran-and-c/c.c
deleted file mode 100644
index b21f9c1..0000000
--- a/org.eclipse.photran-samples/src-fortran-and-c/c.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <stdio.h>
-
-void cfunction_()
-{
- printf(" This is the C function\n");
-}
diff --git a/org.eclipse.photran-samples/src-fortran-and-c/fortran.f90 b/org.eclipse.photran-samples/src-fortran-and-c/fortran.f90
deleted file mode 100644
index eef8e42..0000000
--- a/org.eclipse.photran-samples/src-fortran-and-c/fortran.f90
+++ /dev/null
@@ -1,38 +0,0 @@
- external cfunction ! Defined in c.c
-
- print *, 'This is the Fortran program; I am going to call the C function now...'
- call cfunction()
- call sum(1.0,2.0,3.0)
- call factorial(3)
- print *, 'Now we are back in Fortran again'
-
-contains
-
- subroutine sum(x,y,z)
-
- x = x+y+z
-
- print *, x
-
- end subroutine sum
-
- subroutine factorial(j)
-
- p=1
- i=1
- do i=1,j
- p=p*i
- end do
-
- print *, j, "! = ", p
-
- end subroutine factorial
-
- subroutine sum2(x,y)
-
- p = x+y
-
- end subroutine sum2
-
-
-end
diff --git a/org.eclipse.photran-samples/src-fortran2003/.cvsignore b/org.eclipse.photran-samples/src-fortran2003/.cvsignore
deleted file mode 100644
index 66fec5b..0000000
--- a/org.eclipse.photran-samples/src-fortran2003/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*.exe
-*.mod
diff --git a/org.eclipse.photran-samples/src-fortran2003/01-class.f03 b/org.eclipse.photran-samples/src-fortran2003/01-class.f03
deleted file mode 100644
index cb50da6..0000000
--- a/org.eclipse.photran-samples/src-fortran2003/01-class.f03
+++ /dev/null
@@ -1,23 +0,0 @@
-! Simple class -- JO 1/28/09
-module m
- implicit none
-
- type c
- contains
- procedure :: p
- end type
-contains
- subroutine p(self)
- class(c), intent(in) :: self
- print *, 'Hi'
- end subroutine
-end module
-
-program Fortran2003
- use m
- implicit none
-
- type(c) :: t
- call t%p
- stop
-end program
diff --git a/org.eclipse.photran-samples/src-fortran2003/02-inheritance.f03 b/org.eclipse.photran-samples/src-fortran2003/02-inheritance.f03
deleted file mode 100644
index 5bf83e0..0000000
--- a/org.eclipse.photran-samples/src-fortran2003/02-inheritance.f03
+++ /dev/null
@@ -1,40 +0,0 @@
-! Inheritance -- JO 1/28/09
-module m1
- implicit none
-
- type c
- character(20) :: STR = 'Hey there'
- contains
- procedure :: p
- end type
-contains
- subroutine p(self)
- class(c), intent(in) :: self
- print *, 'Hi'
- end subroutine
-end module
-
-module m2
- use m1
- implicit none
-
- type, extends(c) :: c2
- contains
- procedure :: p => c2_p
- end type
-contains
- ! Can't call this p
- subroutine c2_p(self)
- class(c2), intent(in) :: self
- print *, self%STR
- end subroutine
-end module
-
-program Fortran2003
- use m2
- implicit none
-
- type(c2) :: t
- call t%p
- stop
-end program
diff --git a/org.eclipse.photran-samples/src-fortran2003/03-destructor.f03 b/org.eclipse.photran-samples/src-fortran2003/03-destructor.f03
deleted file mode 100644
index b82eb20..0000000
--- a/org.eclipse.photran-samples/src-fortran2003/03-destructor.f03
+++ /dev/null
@@ -1,66 +0,0 @@
-! Destructor -- JO 1/28/09
-module m1
- implicit none
- private
-
- type, public :: c1
- character(20) :: STR = 'Hey there'
- contains
- procedure :: p
- final :: destructor
- end type
-contains
- subroutine p(self)
- class(c1), intent(in) :: self
- print *, 'Hi'
- end subroutine
-
- subroutine destructor(self)
- type(c1), intent(in) :: self
- print *, 'Bye'
- end subroutine
-end module
-
-module m2
- use m1
- implicit none
- private
-
- type, extends(c1), public :: c2
- contains
- procedure :: p
- end type
-contains
- subroutine p(self)
- class(c2), intent(in) :: self
- print *, self%STR
- end subroutine
-end module
-
-program Fortran2003
- use m1
- use m2
- implicit none
-
- type(c1), target :: c1obj
- type(c2), target :: c2obj
-
- class(c1), pointer :: c1ptr => null()
- class(c2), pointer :: c2ptr => null()
-
- allocate(c1ptr)
- allocate(c2ptr)
-
- c1ptr => c1obj
- c2ptr => c2obj
-
- call c1ptr%p
- call c2ptr%p
- c1ptr => c2ptr
- call c1ptr%p
-
- deallocate(c1ptr)
- deallocate(c2ptr)
-
- stop
-end program
diff --git a/org.eclipse.photran-samples/src-fortran2003/Makefile b/org.eclipse.photran-samples/src-fortran2003/Makefile
deleted file mode 100644
index 303029a..0000000
--- a/org.eclipse.photran-samples/src-fortran2003/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-.PHONY: all clean
-ALL_SRC=$(filter-out xlf-bug.f03 xlf-crash.f03, $(wildcard *.f03))
-
-############ WHICH FILES ARE COMPILED DEPENDS ON THE COMPILER #############
-
-XLF_SRC=$(ALL_SRC)
-
-NAGFOR_SRC=$(filter-out 03-destructor.f03 string.f03, $(ALL_SRC))
-
-###########################################################################
-
-XLF =`which xlf 2>/dev/null | head -1`
-NAGFOR=`which nagfor 2>/dev/null | head -1`
-DEBUGSWITCH=-g
-OPTSWITCH=-O4
-OUTSWITCH=-o
-
-all:
- @if [ "$(NAGFOR)" != "" ]; then \
- for file in $(NAGFOR_SRC); do \
- $(NAGFOR) $(DEBUGSWITCH) \
- $(OUTSWITCH) `echo $$file | sed -e 's/.f03/.exe/'` \
- $(OPTSWITCH) \
- $$file; \
- done; \
- elif [ "$(XLF)" != "" ]; then \
- for file in $(XLF_SRC); do \
- $(XLF) $(DEBUGSWITCH) \
- $(OUTSWITCH) `echo $$file | sed -e 's/.f03/.exe/'` \
- $(OPTSWITCH) \
- $$file; \
- done; \
- fi
-
-clean:
- rm -f *.exe *.mod
\ No newline at end of file
diff --git a/org.eclipse.photran-samples/src-fortran2003/char-fn-test.f03 b/org.eclipse.photran-samples/src-fortran2003/char-fn-test.f03
deleted file mode 100644
index ba14363..0000000
--- a/org.eclipse.photran-samples/src-fortran2003/char-fn-test.f03
+++ /dev/null
@@ -1,7 +0,0 @@
-! Test of a function returning a string -- JO 1/29/09
- print *, c()
-contains
- character(len=len("Hello")) function c()
- c = "Hello"
- end function
-end program
diff --git a/org.eclipse.photran-samples/src-fortran2003/nag-bug.f03 b/org.eclipse.photran-samples/src-fortran2003/nag-bug.f03
deleted file mode 100644
index df6837d..0000000
--- a/org.eclipse.photran-samples/src-fortran2003/nag-bug.f03
+++ /dev/null
@@ -1,35 +0,0 @@
-! Demonstrates a parser bug in NAG Fortran Compiler Release 5.2(649)
-! NPLUX52NA for x86-32 Linux
-!
-! Line 34 reports a syntax error due to the empty parentheses ()
-! However, the statement should parse with
-! pointer-assignment-stmt (R735)
-! > data-target (R739)
-! > expr (R722)
-! > ...
-! > primary (R701)
-! > function-reference (R1217)
-! > procedure-designator "(" [actual-arg-spec-list] ")"
-! where actual-arg-spec-list is marked as being optional and
-! procedure-designator (R1219) > data-ref "%" binding-name
-!
-! J. Overbey 2/23/09 - overbey2@illinois.edu
-module m
- type t; contains; procedure :: ptr; end type
-contains
- function ptr(self)
- class(t), intent(in) :: self
- class(*), pointer :: ptr
- ptr => null()
- end function
-end module
-
-program program
- use m
-
- class(t), pointer :: t_ptr
- class(*), pointer :: any_ptr
-
- allocate (t_ptr)
- any_ptr => t_ptr%ptr() ! <<<<<<<<<< Reported syntax error
-end program
diff --git a/org.eclipse.photran-samples/src-fortran2003/params.f03 b/org.eclipse.photran-samples/src-fortran2003/params.f03
deleted file mode 100644
index 5f52560..0000000
--- a/org.eclipse.photran-samples/src-fortran2003/params.f03
+++ /dev/null
@@ -1,22 +0,0 @@
-! Testing behavior of pass-by-reference
-
-integer, parameter :: q = 1
-
-call s(1) ! Can't byref (literal)
-
-n = 1
-call s(n) ! Can byref (variable)
-print *, "Expected:", 2, "Actual:", n
-
-call s(q) ! Can't byref (parameter)
-print *, "Expected:", 1, "Actual:", q
-
-stop
-
-contains
- subroutine s(p)
- integer :: p
- p = 2
- print *, "Expected:", 2, "Actual:", p
- end subroutine
-end
diff --git a/org.eclipse.photran-samples/src-fortran2003/stream-io.f03 b/org.eclipse.photran-samples/src-fortran2003/stream-io.f03
deleted file mode 100644
index c7637ea..0000000
--- a/org.eclipse.photran-samples/src-fortran2003/stream-io.f03
+++ /dev/null
@@ -1,59 +0,0 @@
-!>
-!! Sample program demonstrates stream I/O in Fortran 2003.
-!!
-!! Jeff Overbey (2/22/09)
-!<
-program stream_io
- implicit none
-
- integer, parameter :: FILE = 2
-
- call check_byte_kind
- call create_file
- call read_file
- stop
-
-contains
- subroutine check_byte_kind
- integer(kind=1) :: byte = 127 + 1
- integer :: int = 127 + 1
- if (byte .ne. -128 .or. int .ne. 128) &
- stop "integer(kind=1) is not one byte"
- end subroutine
-
- subroutine create_file
- integer(kind=1) byte
-
- open (FILE, status='replace', action='write', access='stream', form='unformatted', file='bytes')
- write (FILE) transfer("A", byte)
- write (FILE) transfer("B", byte)
- write (FILE) new_line("x")
- write (FILE) transfer("C", byte)
- close (FILE)
- end subroutine
-
- subroutine read_file
- integer(kind=1) byte
- integer pos, status
- character*256 :: errmsg
-
- open (FILE, status='old', action='read', access='stream', form='unformatted', file='bytes')
- do
- inquire (FILE, pos=pos)
- print *, "Position is", pos
-
- !read (FILE, pos=pos, iostat=status, iomsg=errmsg) byte
- read (FILE, iostat=status, iomsg=errmsg) byte
- if (status .eq. 0) then
- print '("Read byte ", i5, ", status is ", i5)', byte, status
- else if (is_iostat_end(status)) then
- exit
- else
- print *, errmsg
- stop "I/O error"
- end if
- end do
- print '("Read ", i5, " bytes")', pos-1
- close (FILE)
- end subroutine
-end program
diff --git a/org.eclipse.photran-samples/src-fortran2003/string.f03 b/org.eclipse.photran-samples/src-fortran2003/string.f03
deleted file mode 100644
index d66440d..0000000
--- a/org.eclipse.photran-samples/src-fortran2003/string.f03
+++ /dev/null
@@ -1,411 +0,0 @@
-!>
-!! Definition of a string class for Fortran.
-!!
-!! Jeff Overbey (1/29/09)
-!<
-module string_module
- implicit none
- private
-
- public :: new_string
-
- interface new_string
- module procedure &
- new_string_string, &
- new_string_integer, &
- new_string_logical
- end interface
-
- type, public :: string
- private
- character, dimension(:), allocatable :: data
- integer :: length = 0
- contains
- procedure :: initialize
- generic :: operator(+) => concat1, concat2
- generic :: concat => concat1, concat2 ! Photran doesn't parse - R1207
- procedure :: substring
- procedure :: char_at
- procedure :: map
- procedure :: to_uppercase
- procedure :: to_lowercase
- generic :: write(formatted) => write_formatted ! Photran doesn't parse
- generic :: write(unformatted) => write_unformatted
- procedure :: value
- generic :: operator(==) => equals
- generic :: operator(.eqic.) => equals_ignore_case
- final :: destructor
-
- procedure, private :: concat1
- procedure, private :: concat2
- procedure, private :: write_formatted
- procedure, private :: write_unformatted
- procedure, private :: all_satisfy
- procedure, private :: equals
- procedure, private :: equals_ignore_case
- end type string
-
-contains
-
- type(string) function new_string_string(string) result(return)
- character(len=*), intent(in) :: string
- call return%initialize(string)
- end function
-
- type(string) function new_string_integer(integer) result(return)
- integer, intent(in) :: integer
- return = new_string_nat(abs(integer))
- if (integer < 0) return = new_string("-") + return
- end function
-
- type(string) function new_string_logical(logical) result(return)
- logical, intent(in) :: logical
- if (logical) then
- return = new_string('.true.')
- else
- return = new_string('.false.')
- end if
- end function
-
- type(string) recursive function new_string_nat(absval) result(return)
- integer, intent(in) :: absval
-
- if (0 <= absval .and. absval <= 9) then
- call return%initialize(digit_string(absval))
- else
- return = new_string_nat(absval / 10) + digit_string(mod(absval, 10))
- end if
- end function
-
- character(len=1) function digit_string(digit)
- integer, intent(in) :: digit
- select case (digit)
- case (0); digit_string = '0'
- case (1); digit_string = '1'
- case (2); digit_string = '2'
- case (3); digit_string = '3'
- case (4); digit_string = '4'
- case (5); digit_string = '5'
- case (6); digit_string = '6'
- case (7); digit_string = '7'
- case (8); digit_string = '8'
- case (9); digit_string = '9'
- end select
- end function
-
- subroutine initialize(self, data)
- class(string), intent(inout) :: self
- character(len=*), intent(in) :: data
- integer :: i
-
- self%length = len(data)
- allocate(self%data(self%length))
- do i = 1, len(data)
- self%data(i) = data(i:i)
- end do
- end subroutine
-
- ! XLF parses class(string) but gives semantic error; Photran doesn't parse
- type(string) function concat1(self, other) result(return)
- class(string), intent(in) :: self
- class(string), intent(in) :: other
-
- return = concat2(self, other%value())
- end function
-
- type(string) function concat2(self, other) result(return)
- class(string), intent(in) :: self
- character(len=*), intent(in) :: other
- integer :: i
-
- return%length = self%length + len(other)
- allocate(return%data(return%length))
- return%data(1:self%length) = self%data
- do i = 1, len(other); return%data(i + self%length) = other(i:i); end do
- end function
-
- type(string) function substring(self, start, thru) result(return)
- class(string), intent(in) :: self
- integer, intent(in) :: start, thru
-
- if (thru < start) return
-
- return%length = thru - start + 1
- allocate(return%data(return%length))
- return%data(1:self%length) = self%data(start:thru)
- end function
-
- character(len=1) function char_at(self, index) result(return)
- class(string), intent(in) :: self
- integer, intent(in) :: index
- return = self%data(index)
- end function
-
- type(string) function map(self, function) result(return)
- class(string), intent(in) :: self
- interface
- character(len=1) function function(string)
- character(len=1), intent(in) :: string
- end function
- end interface
- integer :: i
-
- return%length = self%length
- allocate(return%data(return%length))
- do i = 1, self%length
- return%data(i) = function(self%data(i))
- end do
- end function
-
- type(string) function to_uppercase(self) result(return)
- class(string), intent(in) :: self
- return = self%map(to_upper)
- !contains ! Causes XLF compiler bug -- see xlf-bug.f03
- end function
- character(len=1) function to_upper(ch) result(return)
- character(len=1), intent(in) :: ch
- integer, parameter :: diff = iachar('a') - iachar('A')
-
- if (lle('a', ch) .and. lle(ch, 'z')) then
- return = achar(iachar(ch) - diff)
- else
- return = ch
- end if
- end function
- !end function
-
- type(string) function to_lowercase(self) result(return)
- class(string), intent(in) :: self
- return = self%map(to_lower)
- !contains ! Causes XLF compiler bug -- see xlf-bug.f03
- end function
- character(len=1) function to_lower(ch) result(return)
- character(len=1), intent(in) :: ch
- integer, parameter :: diff = iachar('a') - iachar('A')
-
- if (lle('A', ch) .and. lle(ch, 'Z')) then
- return = achar(iachar(ch) + diff)
- else
- return = ch
- end if
- end function
- !end function
-
- subroutine write_formatted(self, unit, iotype, v_list, iostat, iomsg)
- class(string), intent(in) :: self
- integer, intent(in) :: unit
- character(*), intent(in) :: iotype
- integer, dimension(:), intent(in) :: v_list
- integer, intent(out) :: iostat
- character(*), intent(inout) :: iomsg
- ! TODO Incomplete
- write (unit=unit, fmt=*, iostat=iostat, iomsg=iomsg) self%value()
- end subroutine
-
- subroutine write_unformatted(self, unit, iostat, iomsg)
- class(string), intent(in) :: self
- integer, intent(in) :: unit
- integer, intent(out) :: iostat
- character(*), intent(inout) :: iomsg
- ! TODO Incomplete
- write (unit=unit, fmt=*, iostat=iostat, iomsg=iomsg) self%value()
- end subroutine
-
- character(len=self%length) function value(self) result(result)
- class(string), intent(in) :: self
- integer :: i
-
- do i = 1, ubound(self%data, 1)
- result(i:i) = self%data(i)
- end do
- end function
-
- logical function all_satisfy(self, function, other) result(return)
- class(string), intent(in) :: self
- interface
- logical function function(ch1, ch2)
- character(len=1), intent(in) :: ch1, ch2
- end function
- end interface
- class(string), intent(in) :: other
- integer :: i
-
- if (self%length <> other%length) then
- return = .false.
- else
- return = .true.
- do i = 1, self%length
- if (function(self%data(i), other%data(i)) .eqv. .false.) then
- return = .false.
- return
- end if
- end do
- end if
- end function
-
- logical function equals(self, other) result(return)
- class(string), intent(in) :: self
- class(string), intent(in) :: other
- return = self%all_satisfy(ch_eq, other)
- end function
-
- logical function ch_eq(ch1, ch2) result(return)
- character(len=1), intent(in) :: ch1, ch2
- return = ch1 .eq. ch2
- end function
-
- logical function equals_ignore_case(self, other) result(return)
- class(string), intent(in) :: self
- class(string), intent(in) :: other
- return = self%all_satisfy(ch_eqic, other)
- end function
-
- logical function ch_eqic(ch1, ch2) result(return)
- character(len=1), intent(in) :: ch1, ch2
- return = to_upper(ch1) .eq. to_upper(ch2)
- end function
-
- subroutine destructor(self)
- type(string), intent(inout) :: self
- end subroutine
-
-end module string_module
-
-module test_util
- implicit none
-contains
- character(len=1) function identity(string) result(return)
- character(len=1), intent(in) :: string
- return = string
- end function
-
- character(len=1) function always_a(string) result(return)
- character(len=1), intent(in) :: string
- return = 'a'
- end function
-end module test_util
-
-program string_test
- use string_module
- use test_util
- implicit none
-
- type(string) :: s1, s2
-
- print *, "Expected: "
- print *, "Actual: ", s1%value()
-
- call s1%initialize('Hello')
- call s2%initialize('!')
-
- print *, "Expected: Hello"
- print *, "Actual: ", s1%value()
-
- s1 = new_string("HeLlOoO!")
- print *, "Expected: HeLlOoO!"
- print *, "Actual: ", s1%value()
- s1 = new_string("Hello")
-
- s1 = s1%concat(', world')
- print *, "Expected: Hello, world"
- print *, "Actual: ", s1%value()
-
- s1 = s1%concat(s2)
- print *, "Expected: Hello, world!"
- print *, "Actual: ", s1%value()
-
- s1 = s1 + '!'
- !print *, (s1 + '!')%value()
- print *, "Expected: Hello, world!!"
- print *, "Actual: ", s1%value()
-
- print *, "Expected: -9876x"
- print *, "Actual: ", new_string("-") + new_string("9876x")
-
- print *, "Expected: ell"
- print *, "Actual: ", "Hello, world!!"(2:4)
- print *, "Expected: ell"
- print *, "Actual: ", s1%substring(2, 4)
-
- print *, "Expected: He"
- print *, "Actual: ", s1%substring(0, 2)
-
- print *, "Expected: "
- print *, "Actual: ", "Hello, world!!"(5:1)
- print *, "Expected: "
- print *, "Actual: ", s1%substring(5, 1)
-
- print *, "Expected: e"
- print *, "Actual: ", s1%char_at(2)
-
- print *, "Expected: ", "Hello, world!!"
- print *, "Actual: ", s1%map(identity)
-
- print *, "Expected: ", "aaaaaaaaaaaaaa"
- print *, "Actual: ", s1%map(always_a)
-
- print *, "Expected: HELLO, WORLD!!"
- print *, "Actual: ", s1%to_uppercase()
-
- print *, "Expected: hello, world!!"
- print *, "Actual: ", s1%to_lowercase()
-
- print *, "Expected: Hello, world!!"
- print *, "Actual: ", s1
-
- print *, "Expected: 0"
- print *, "Actual: ", new_string(0)
-
- print *, "Expected: 5"
- print *, "Actual: ", new_string(5)
-
- print *, "Expected: 12345"
- print *, "Actual: ", new_string(12345)
-
- print *, "Expected: -8"
- print *, "Actual: ", new_string(-8)
-
- print *, "Expected: -98765"
- print *, "Actual: ", new_string(-98765)
-
- print *, "Expected: .true."
- print *, "Actual: ", new_string(.true.)
-
- print *, "Expected: .false."
- print *, "Actual: ", new_string(.false.)
-
- print *, "Expected: T"
- print *, "Actual: ", new_string(.false.) == new_string(".false.")
-
- print *, "Expected: T"
- print *, "Actual: ", new_string("") == new_string("")
-
- print *, "Expected: F"
- print *, "Actual: ", new_string("") == new_string("true")
-
- print *, "Expected: F"
- print *, "Actual: ", new_string("true") == new_string("")
-
- print *, "Expected: F"
- print *, "Actual: ", new_string("true") == new_string("truE")
-
- print *, "Expected: T"
- print *, "Actual: ", new_string(.false.) .eqic. new_string(".false.")
-
- print *, "Expected: T"
- print *, "Actual: ", new_string("") .eqic. new_string("")
-
- print *, "Expected: F"
- print *, "Actual: ", new_string("") .eqic. new_string("true")
-
- print *, "Expected: F"
- print *, "Actual: ", new_string("true") .eqic. new_string("")
-
- print *, "Expected: T"
- print *, "Actual: ", new_string("true") .eqic. new_string("truE")
-
- print *, "Expected: T"
- print *, "Actual: ", new_string("tRUe") .eqic. new_string("TrUe")
-
- print *, "Done"
-end program string_test
diff --git a/org.eclipse.photran-samples/src-fortran2003/xlf-bug.f03 b/org.eclipse.photran-samples/src-fortran2003/xlf-bug.f03
deleted file mode 100644
index 31776da..0000000
--- a/org.eclipse.photran-samples/src-fortran2003/xlf-bug.f03
+++ /dev/null
@@ -1,62 +0,0 @@
-!>
-!! Illustrates a bug in IBM XL Fortran for AIX, V12.1 (5724-U82)
-!!
-!! The function "identity" is an internal function which
-!! is passed as a parameter to the "map" routine. However, when it is invoked as a callback,
-!! the string it receives as its first parameter is not the string that was actually passed
-!! as the first parameter by the invoking function.
-!!
-!! Jeff Overbey (1/29/09)
-!<
-module string_module
- implicit none
- private
-
- type, public :: string
- contains
- procedure :: map
- procedure :: copy
- end type string
-
-contains
-
- ! Applies function to each of the strings 'H', 'e', 'l', 'l', 'o'
- subroutine map(self, function)
- class(string), intent(in) :: self
- interface
- character(len=1) function function(string)
- character(len=1), intent(in) :: string
- end function
- end interface
-
- character, dimension(5) :: hello = (/ 'H', 'e', 'l', 'l', 'o' /)
- integer :: i
-
- do i = 1, 5
- print *, "Invoking callback with parameter ", hello(i)
- hello(i) = function(hello(i))
- end do
- end subroutine
-
- ! Invokes map with the identity function (defined below)
- subroutine copy(self)
- class(string), intent(in) :: self
- call self%map(identity)
- contains
- !!!!! Error is demonstrated when this (internal) function is
- !!!!! passed as an argument to the map procedure: The "ch"
- !!!!! argument is a garbage string, not the one actually
- !!!!! passed by map
- character(len=1) function identity(ch) result(return)
- character(len=1), intent(in) :: ch
- print *, "Callback invoked with parameter ", ch
- return = ch
- end function
- end subroutine
-end module string_module
-
-program string_test
- use string_module
- type(string) :: s
- call s%copy()
-end program string_test
diff --git a/org.eclipse.photran-samples/src-fortran2003/xlf-bug2.f03 b/org.eclipse.photran-samples/src-fortran2003/xlf-bug2.f03
deleted file mode 100644
index 91ace76..0000000
--- a/org.eclipse.photran-samples/src-fortran2003/xlf-bug2.f03
+++ /dev/null
@@ -1,55 +0,0 @@
-!>
-!! Illustrates a bug in IBM XL Fortran for AIX, V12.1 (5724-U82)
-!!
-!! XLF reports errors when a subclass, whose parent class is in a different
-!! module, overrides a procedure with a pointer to class(*) as either an
-!! argument or a return type. If both modules are combined into a single
-!! module, the code compiles successfully.
-!!
-!! Jeff Overbey (2/24/09)
-!<
-module mod_base
- implicit none
- private
- ! Abstract class "base" contains two routines
- ! * accept_any accepts a pointer to class(*)
- ! * return_any returns a pointer to class(*)
- type, public, abstract :: base
- contains
- procedure(accept_any), deferred :: accept_any
- procedure(return_any), deferred :: return_any
- end type
- abstract interface
- subroutine accept_any(self, arg)
- import base
- class(base), intent(in) :: self
- class(*), pointer, intent(in) :: arg
- end subroutine
- function return_any(self) result(return)
- import base
- class(base), intent(in) :: self
- class(*), pointer :: return
- end function
- end interface
-end module
-module mod_extended
- use mod_base
- implicit none
- private
- type, public, extends(base) :: extended
- contains
- procedure :: accept_any => extended_accept_any ! XLF reports Dummy argument arg of overridden binding accept_any and the corresponding dummy argument of overriding binding accept_any must have the same type and type parameters.
- procedure :: return_any => extended_return_any ! XLF reports The function results of the overridden binding return_any and overridding binding return_any must have the same type and type parameters.
- end type
-contains
- subroutine extended_accept_any(self, arg)
- class(extended), intent(in) :: self
- class(*), pointer, intent(in) :: arg
- end subroutine
- function extended_return_any(self) result(return)
- class(extended), intent(in) :: self
- class(*), pointer :: return
- return => null()
- end function
-end module
-program p; end program
diff --git a/org.eclipse.photran-samples/src-fortran2003/xlf-crash.f03 b/org.eclipse.photran-samples/src-fortran2003/xlf-crash.f03
deleted file mode 100644
index ad259b3..0000000
--- a/org.eclipse.photran-samples/src-fortran2003/xlf-crash.f03
+++ /dev/null
@@ -1,20 +0,0 @@
-!>
-!! Example program causes an internal compiler error in
-!! IBM XL Fortran for AIX, V12.1 (5724-U82)
-!!
-!! Jeff Overbey (1/29/09)
-!<
-module m
- type string
- character, dimension(:), pointer :: data
- contains
- procedure value
- end type
-contains
- ! XLF internal compiler error due to this expression
- ! vvvvvvvvvvvvvvvvvvvv
- character(len=ubound(self%data, 1)) function value(self) !result(result)
- class(string), intent(in) :: self
- value = ''
- end function
-end module
diff --git a/org.eclipse.photran-samples/src-gaussian-elimination/.cvsignore b/org.eclipse.photran-samples/src-gaussian-elimination/.cvsignore
deleted file mode 100644
index 2e87cbd..0000000
--- a/org.eclipse.photran-samples/src-gaussian-elimination/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-a.exe
diff --git a/org.eclipse.photran-samples/src-gaussian-elimination/gauselim.f90 b/org.eclipse.photran-samples/src-gaussian-elimination/gauselim.f90
deleted file mode 100755
index f193e2d..0000000
--- a/org.eclipse.photran-samples/src-gaussian-elimination/gauselim.f90
+++ /dev/null
@@ -1,239 +0,0 @@
-program GaussianElimination
-! Solve a linear system of equations with Gaussian Elimination
-! and Back Substitution
-
-! SUBROUTINES: mtxrd,mtxwrt,mtxmlt
-
-! Always declare ALL variables
- implicit none
- INTEGER :: indx,jndx,kndx,lndx ! loop counters
- INTEGER :: nsize ! # of equations (size of the A matrix)
- REAL :: amtx(10,10) ! A matrix in Ax=B
- REAL :: bvct(10) ! B vector in Ax=B
- REAL :: xvct(10) ! x vector in Ax=B
- REAL :: scl(10) ! Scale factors
- INTEGER :: irow(10) ! Row numbers (for swapping rows)
- INTEGER :: ipivot ! Pivot row
- INTEGER :: itemp ! Temporary value while swapping
- REAL :: tmpval ! Temporary value while pivoting
- REAL :: pival ! Pivot value
- REAL :: fctr ! Multiplication factor for row reduction
- CHARACTER(len = 64) :: filein ! Input file name
- INTEGER :: ieof ! Flag to ensure the file opens correctly
-
-! Initially, no row swaps
- do indx = 1, 10
- irow(indx) = indx
- end do
-
-! Introduce the program
- write (*, *) &
- 'Program to solve a linear system of equations using'
- write (*, *) &
- ' Gaussian Elimination and Back Substitution'
- write (*, *) ! A Blank Line
-
-! Read from a file (we don't have to type all those numbers)
- write (*, *) 'Enter the input file name: '
- read (*, *) filein
- open (10, file = filein, status = 'old', iostat = ieof)
-
-! If I have trouble opening the file, blow me out of the program!
- if (ieof .ne. 0) then
- write (*, *) 'File error!'
- stop
- end if
-
-! Input the A matrix - write it out for the user
- write (*, *) 'A Matrix:'
- call mtxrd(amtx,nsize,nsize)
- call mtxwrt(amtx,irow,nsize,nsize)
-! Input the B vector - write it out for the user
- write (*, *) ! Blank line
- write (*, *) 'B Vector:'
- call vctrd(bvct,nsize)
- call vctwrt(bvct,nsize)
-
-! *** FIND SCALE FACTORS *** !
-
- do indx = 1,nsize
- scl(indx) = abs(amtx(indx,1))
- do jndx = 2, nsize
- if (abs(amtx(indx,jndx)) > scl(indx)) then
- scl(indx) = abs(amtx(indx,jndx))
- end if
- end do
- end do
-
- write (*, *) ! Blank line
- write (*, *) 'Scale factors:'
- call vctwrt(scl,nsize)
-
-! *** BEGIN GAUSSIAN ELIMINATION (ROW REDUCTION) *** !
-
- do kndx = 1, nsize-1 ! For each column k...
-
- ! Choose the pivot element
- ipivot = kndx ! WAS ipivot = irow(kndx)
- pival = abs(amtx(irow(ipivot), kndx) / scl(irow(ipivot)))
- do lndx = kndx+1, nsize
- tmpval = abs(amtx(irow(lndx), kndx) / scl(irow(lndx)))
- if (tmpval > pival) then
- pival = tmpval
- ipivot = lndx ! WAS ipivot = irow(lndx)
- end if
- end do
-
- !write (*, *) ! Blank line
- !write (*, *) 'Swapping rows ', kndx, ' and ', ipivot, ' -- pival is ', pival
-
- ! Row swap
- itemp = irow(kndx)
- irow(kndx) = irow(ipivot)
- irow(ipivot) = itemp
-
- !call augwrt(amtx,irow,bvct,nsize)
-
- ! Row reduce
- do indx = kndx+1, nsize ! For each row i > k...
- fctr = amtx(irow(indx),kndx) / amtx(irow(kndx),kndx)
- amtx(irow(indx),kndx) = 0.0 ! We're zeroing out a(i,k)
- do jndx = kndx+1,nsize ! Scale & subtract the rest of the row
- amtx(irow(indx),jndx) = amtx(irow(indx),jndx) - fctr * amtx(irow(kndx),jndx)
- end do
- bvct(irow(indx)) = bvct(irow(indx)) - fctr * bvct(irow(kndx))
- end do
-
- !write (*, *) 'Reduction:'
- !call augwrt(amtx,irow,bvct,nsize)
-
- end do
-
-! *** END GAUSSIAN ELIMINATION (ROW REDUCTION) *** !
-
-
- write (*, *) ! Blank line
- write (*, *) 'Reduced, Augmented Matrix:'
- call augwrt(amtx,irow,bvct,nsize)
-
-! Back Substitute
- do indx = nsize, 1, -1 ! Start at lower right and work upwards
- xvct(indx) = bvct(irow(indx))
-! Subtract the previous x-values times their respective coefficients
- do jndx = indx+1, nsize
- xvct(indx) = xvct(indx) - amtx(irow(indx),jndx) * xvct(jndx)
- end do
-! Divide by the current coefficient
- xvct(indx) = xvct(indx) / amtx(irow(indx),indx)
- end do
-
- write (*, *) ! Blank line
- write (*, *) 'Solution Vector:'
- call vctwrt(xvct,nsize)
-
- stop
-
-contains
-
- subroutine mtxrd(amtx,mrow,ncol)
-
-! ABSTRACT: Subroutine to read an m x n matrix from a file
-! FORMAT: first line has the dimensions
-! each following line has a row of the matrix
-
-! Always declare ALL variables
- implicit none
- INTEGER :: irow,jcol ! row, column loop counters
- INTEGER, INTENT(OUT) :: mrow,ncol ! # rows, columns
- REAL, INTENT(OUT) :: amtx(:,:) ! matrix
-
-! Read the size of the matrix
- read (10, *) mrow,ncol
-
-! Read the matrix, one row at a time
- do irow = 1,mrow
- read (10, *) (amtx(irow,jcol),jcol=1,ncol)
- end do
-
- return
- end subroutine mtxrd
-
- subroutine mtxwrt(amtx,irow,mrow,ncol)
-
-! ABSTRACT: Subroutine to write an m x n matrix to the screen
-
-! Always declare ALL variables
- implicit none
- INTEGER :: indx,jcol ! row, column loop counters
- INTEGER, INTENT(IN) :: mrow,ncol ! # rows, columns
- INTEGER, INTENT(IN) :: irow(:) ! For row swapping
- REAL, INTENT(IN) :: amtx(:,:) ! matrix
-
-! Write the matrix, one row at a time
- do indx = 1,mrow
- write (*, '('' '',10g10.4)') (amtx(irow(indx),jcol),jcol=1,ncol)
- end do
- return
- end subroutine mtxwrt
-
- subroutine augwrt(amtx,irow,bvct,nsize)
-
-! ABSTRACT: Subroutine to write an n x n matrix with a vector augmented to it
-
-! Always declare ALL variables
- implicit none
- INTEGER :: indx,jcol ! row, column loop counters
- INTEGER, INTENT(IN) :: nsize ! # rows
- INTEGER, INTENT(IN) :: irow(:) ! For row swapping
- REAL, INTENT(IN) :: amtx(:,:) ! matrix
- REAL, INTENT(IN) :: bvct(:) ! vector
-
-! Write the matrix, one row at a time
- do indx = 1,nsize
- write (*, '('' '',10g10.4)') &
- (amtx(irow(indx),jcol),jcol=1,nsize),bvct(irow(indx))
- end do
- return
- end subroutine augwrt
-
- subroutine vctrd(vctr,nsize)
-
-! ABSTRACT: Subroutine to read a vector from a file
-! FORMAT: first line has the dimensions
-! each following line has a row of the vector
-
-! Always declare ALL variables
- implicit none
- INTEGER :: irow ! row loop counters
- INTEGER, INTENT(OUT) :: nsize ! # rows
- REAL, INTENT(OUT) :: vctr(:) ! vector
-
-! Read the size of the matrix
- read (10, *) nsize
-
-! Read the matrix, one row at a time
- do irow = 1,nsize
- read (10, *) vctr(irow)
- end do
-
- return
- end subroutine vctrd
-
- subroutine vctwrt(vctr,nsize)
-
-! ABSTRACT: Subroutine to write a vector to the screen
-
-! Always declare ALL variables
- implicit none
- INTEGER :: irow ! row loop counters
- INTEGER, INTENT(IN) :: nsize ! # rows
- REAL, INTENT(IN) :: vctr(:) ! vector
-
-! Write the matrix, one row at a time
- do irow = 1,nsize
- write (*, *) vctr(irow)
- end do
- return
- end subroutine vctwrt
-
-end program GaussianElimination
diff --git a/org.eclipse.photran-samples/src-implicits-1/.cvsignore b/org.eclipse.photran-samples/src-implicits-1/.cvsignore
deleted file mode 100644
index 2e87cbd..0000000
--- a/org.eclipse.photran-samples/src-implicits-1/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-a.exe
diff --git a/org.eclipse.photran-samples/src-implicits-1/hello.f90 b/org.eclipse.photran-samples/src-implicits-1/hello.f90
deleted file mode 100644
index f5dfb76..0000000
--- a/org.eclipse.photran-samples/src-implicits-1/hello.f90
+++ /dev/null
@@ -1,22 +0,0 @@
-! This is a sample program
-
-program Hello
- integer :: i = 3 !!! a variable !!!
-
- call Sub(Fn(i) + 1)
-
- print *, "The integer is ", i
-
-contains ! a comment
-
-subroutine Sub(x) ! start
-
- print *, "In the subroutine, the integer is ", x
-end subroutine Sub ! end
-
-end program
-
-integer function Fn(n) result(y)
- print *, "You sent", n, "to the function"
- y = n
-end function
diff --git a/org.eclipse.photran-samples/src-implicits-2/.cvsignore b/org.eclipse.photran-samples/src-implicits-2/.cvsignore
deleted file mode 100644
index 2e87cbd..0000000
--- a/org.eclipse.photran-samples/src-implicits-2/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-a.exe
diff --git a/org.eclipse.photran-samples/src-implicits-2/fortran.f90 b/org.eclipse.photran-samples/src-implicits-2/fortran.f90
deleted file mode 100644
index 8240a04..0000000
--- a/org.eclipse.photran-samples/src-implicits-2/fortran.f90
+++ /dev/null
@@ -1,37 +0,0 @@
-program functioncalling
-
- print *, 'This is the Fortran program; I am going to call some functions now...'
- call sum(1.0,2.0,3.0)
- call factorial(3)
- print *, 'Done'
-
-contains
-
- subroutine sum(x,y,z)
-
- x = x+y+z
-
- print *, x
-
- end subroutine sum
-
- subroutine factorial(j)
-
- p=1
- i=1
- do i=1,j
- p=p*i
- end do
-
- print *, j, "! = ", p
-
- end subroutine factorial
-
- subroutine sum2(x,y)
-
- p = x+y
-
- end subroutine sum2
-
-
-end
diff --git a/org.eclipse.photran-samples/src-implicits-3/.cvsignore b/org.eclipse.photran-samples/src-implicits-3/.cvsignore
deleted file mode 100644
index 2e87cbd..0000000
--- a/org.eclipse.photran-samples/src-implicits-3/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-a.exe
diff --git a/org.eclipse.photran-samples/src-implicits-3/crazyimplicits.f90 b/org.eclipse.photran-samples/src-implicits-3/crazyimplicits.f90
deleted file mode 100644
index 8a82a84..0000000
--- a/org.eclipse.photran-samples/src-implicits-3/crazyimplicits.f90
+++ /dev/null
@@ -1,21 +0,0 @@
-program p
- a = 3
- d = 4
- stop
-contains
-subroutine s
- implicit integer (a-c,g), real (d-e), type(t) (f), complex (h)
- type t
- integer n
- end type
-
- a = 3
- b = 3
- c = 3
- d = 3.0
- e = 3.0
- f%n = 3
- g = 3
- h = (3, 4)
-end subroutine
-end program
diff --git a/org.eclipse.photran-samples/src-includes/.cvsignore b/org.eclipse.photran-samples/src-includes/.cvsignore
deleted file mode 100644
index 2e87cbd..0000000
--- a/org.eclipse.photran-samples/src-includes/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-a.exe
diff --git a/org.eclipse.photran-samples/src-includes/inc.h b/org.eclipse.photran-samples/src-includes/inc.h
deleted file mode 100644
index 32cff95..0000000
--- a/org.eclipse.photran-samples/src-includes/inc.h
+++ /dev/null
@@ -1 +0,0 @@
- integer :: i
diff --git a/org.eclipse.photran-samples/src-includes/innocuous.f90 b/org.eclipse.photran-samples/src-includes/innocuous.f90
deleted file mode 100644
index a6a9baf..0000000
--- a/org.eclipse.photran-samples/src-includes/innocuous.f90
+++ /dev/null
@@ -1 +0,0 @@
-end
diff --git a/org.eclipse.photran-samples/src-includes/main.doesnotcompile b/org.eclipse.photran-samples/src-includes/main.doesnotcompile
deleted file mode 100644
index fcc082c..0000000
--- a/org.eclipse.photran-samples/src-includes/main.doesnotcompile
+++ /dev/null
@@ -1,6 +0,0 @@
-! Compilers have all sorts of trouble with this...
-! gfortran segfaulted, and ifort does not allow it
-program p
- include "inc.h"
- print i
-end program p
diff --git a/org.eclipse.photran-samples/src-interfaces/.cvsignore b/org.eclipse.photran-samples/src-interfaces/.cvsignore
deleted file mode 100644
index 2e87cbd..0000000
--- a/org.eclipse.photran-samples/src-interfaces/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-a.exe
diff --git a/org.eclipse.photran-samples/src-interfaces/gfortran_compile_error.txt b/org.eclipse.photran-samples/src-interfaces/gfortran_compile_error.txt
deleted file mode 100644
index 6bed12b..0000000
--- a/org.eclipse.photran-samples/src-interfaces/gfortran_compile_error.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-!!
-!! Examples of using INTERFACE blocks in Fortran
-!!
-!! INTERFACE blocks have two different uses:
-!!
-!! 1. Declaring the interface of an external subprogram
-!! (as an alternative to the EXTERNAL statement, which
-!! declares that the subprogram is external but says nothing
-!! about its signature)
-!!
-!! 2. Overloading
-!!
-!! J. Overbey 9/15/08
-!!
-module interface_example
- implicit none
-
- !! USAGE 1: Declaring the interface of an external subprogram
- interface
- integer function one()
- end function
-
- integer function two()
- end function
- end interface
-
- ! Note that one and two are exported and can be made private
- private :: two
-
- !! USAGE 2: Overloading
- interface description
- character(len=*) function description_int(value)
- integer, intent(in) :: value
- end function description_int
- module procedure description_real
- end interface
-
-contains
- character(len=50) function description_real(value)
- real, intent(in) :: value
- write (description_real, *) "REAL:", value
- end function
-end module interface_example
-
-program program
- use interface_example
- integer :: one, two = 2 ! Note that "two" is hidden in the module
- print *, one()
- print *, description(2)
- print *, description(3.0)
-end program program
-
-!! EXTERNAL SUBPROGRAMS
-integer function one(); one = 1; end function
-integer function two(); two = 2; end function
-character(len=50) function description_int(value)
- integer, intent(in) :: value
- write (description_real, *) "INTEGER:", value
-end function
diff --git a/org.eclipse.photran-samples/src-interfaces/interfaces.f90 b/org.eclipse.photran-samples/src-interfaces/interfaces.f90
deleted file mode 100644
index 5cac592..0000000
--- a/org.eclipse.photran-samples/src-interfaces/interfaces.f90
+++ /dev/null
@@ -1,85 +0,0 @@
-!!
-!! Examples of using INTERFACE blocks in Fortran
-!!
-!! INTERFACE blocks have two different uses:
-!!
-!! 1. Declaring the interface of an external subprogram
-!! (as an alternative to the EXTERNAL statement, which
-!! declares that the subprogram is external but says nothing
-!! about its signature)
-!!
-!! 2. Overloading
-!!
-!! J. Overbey 9/15/08
-!!
-module interface_example
- implicit none
-
- ! USAGE 1: Declaring the interface of an external subprogram
-
- ! This declares two functions in the module, named "one" and "two"
- ! They will be resolved to the corresponding external functions at link time
- interface
- integer function one()
- end function
-
- integer function two()
- end function
- end interface
-
- ! Since "one" and "two" are in the module, they can be made private; we'll
- ! hide "two" from the outside world
- private :: two
-
- ! USAGE 2: Overloading
-
- ! This declares a function named "description" which can be called with
- ! either an integer or real parameter;
- ! description(1)
- ! will actually invoke description_int(1), while
- ! description(2.0)
- ! will actually invoke description_real(2.0)
- interface description
- ! This overload is an external function; we'll use the same syntax as
- ! above, simply declaring its interface
- character(len=50) function description_int(value)
- integer, intent(in) :: value
- end function description_int
-
- ! This overload is a procedure in the module, so we can use a
- ! MODULE PROCEDURE statement since we already know its interface
- module procedure description_real
- end interface
-
- ! INTERFACE blocks can also be used for operator overloading, but I won't
- ! demonstrate that here
-
-contains
- character(len=50) function description_real(value)
- real, intent(in) :: value
- write (description_real, *) "REAL:", value
- end function
-end module interface_example
-
-program program
- use interface_example, only: one, description
- implicit none
- integer :: two = 2 ! Note that "two" is hidden in the module,
- ! so we can declare a "two" variable here
-
- ! Call the function declared in the INTERFACE block
- print *, one()
-
- ! Call the overloaded "description" function
- print *, description(two)
- print *, description(3.0)
-end program program
-
-!! EXTERNAL SUBPROGRAMS
-integer function one(); one = 1; end function
-integer function two(); two = 2; end function
-character(len=50) function description_int(value)
- implicit none
- integer, intent(in) :: value
- write (description_int, *) "INTEGER:", value
-end function
diff --git a/org.eclipse.photran-samples/src-language-features/.cvsignore b/org.eclipse.photran-samples/src-language-features/.cvsignore
deleted file mode 100644
index 2e87cbd..0000000
--- a/org.eclipse.photran-samples/src-language-features/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-a.exe
diff --git a/org.eclipse.photran-samples/src-language-features/almost-exhaustive.f90 b/org.eclipse.photran-samples/src-language-features/almost-exhaustive.f90
deleted file mode 100644
index 2154980..0000000
--- a/org.eclipse.photran-samples/src-language-features/almost-exhaustive.f90
+++ /dev/null
@@ -1,47 +0,0 @@
-program Main
- integer, parameter :: k6=selected_int_kind(6) ! Kind for range [-999999,999999]
- integer, parameter :: n1 = -123456_k6
- integer, parameter :: n2 = -123456_4
- integer, parameter :: long = selected_real_kind(9, 99) ! 9 sig decimals, exponent
- ! range 10^-99 to 10^99
- integer, parameter :: asci = kind('ASCII')
- integer(kind=long) :: a
- character(len=20, kind=1) :: english_word
- character(20) :: length_twenty
-
- type person
- character(10) :: name
- real :: age
- integer :: id
- end type
- type(person) :: me = person('Jeff', 23, 12345)
- type(person) :: you
-
- real, dimension(10) :: array1thru10
- real, dimension(-10,5) :: arrayneg10thru5
- real, dimension(-10:5, -20:-1, 2) :: threedarray
- real, dimension(5) :: arrayconst = (/ 1, 2, 3, 4, 5 /)
-
- character(len=10) :: ten = "1234567890"
-
- real, pointer :: realptr => null()
-
- you%name = 'Bob'
- you%age = 17.25
- you%id = 18
-
- print *, "Kinds:", kind(k6), kind(n1), kind(n2), kind(1.0)
- print *, "Precision:", precision(1.0_long) ! will be at least 9
- print *, "Num decimal digits supported:", range(2_k6)
- print *, "Num decimal digits supported:", range(1.0_long) ! will be at least 99
- !ERROR!print *, "Bin/octal/hex:", b'01100110', o'076543', z'10fa'
- print *, "Real literal constant:", -10.6e-11, 1., -0.1, 1e-1, 3.141592653
- print *, "Complex:", (1., 3.2), (1, .99e-2), (1.0, 3.7_8)
- print *, 'He said "Hello"', "This contains an '", 'Isn''t it a nice day'
- print *, 'This is a long string &
- & which spans several lines &
- & unnecessarily.'
- !ERROR!print *, asci_"String"
- print *, .false._1, .true._long
- print *, ten(:5), ten(6:), ten(3:7), ten(:), you%name(1:2), 'Hello'(:2)
-end program
diff --git a/org.eclipse.photran-samples/src-liebmann-1-eoshift/.cvsignore b/org.eclipse.photran-samples/src-liebmann-1-eoshift/.cvsignore
deleted file mode 100644
index 2e87cbd..0000000
--- a/org.eclipse.photran-samples/src-liebmann-1-eoshift/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-a.exe
diff --git a/org.eclipse.photran-samples/src-liebmann-1-eoshift/liebmann.f90 b/org.eclipse.photran-samples/src-liebmann-1-eoshift/liebmann.f90
deleted file mode 100644
index f603aca..0000000
--- a/org.eclipse.photran-samples/src-liebmann-1-eoshift/liebmann.f90
+++ /dev/null
@@ -1,50 +0,0 @@
-!!
-!! Liebmann's method to compute heat transfer across a 2-D surface
-!! J. Overbey 8/27/08
-!!
-!! Use liebmann-viz.sh in the main project directory to visualize the resulting
-!! table using gnuplot
-!!
-!! This version looks the nicest and uses the eoshift intrinsic
-!!
-program liebmann_example
- implicit none
-
- integer, parameter :: SIZE = 200
- integer, parameter :: INTERIOR_SIZE = SIZE - 2
- real, parameter :: BOUNDARY_VALUE = 5.0
- real, parameter :: EPSILON = 0.001
-
- call main()
-
-contains
-
-subroutine main()
- integer :: i
- real :: surface(INTERIOR_SIZE, INTERIOR_SIZE)
-
- surface = 0.0
- surface = iterate(surface)
-
- print *, (BOUNDARY_VALUE, i=1,SIZE)
- do i = 1, INTERIOR_SIZE; print *, BOUNDARY_VALUE, surface(i, :), BOUNDARY_VALUE; end do
- print *, (BOUNDARY_VALUE, i=1,SIZE)
-end subroutine
-
-function iterate(initial) result(result)
- intent(in) :: initial
- real, dimension(INTERIOR_SIZE, INTERIOR_SIZE) :: initial, previous, up, down, left, right, result
-
- result = initial
- do
- previous = result
- up = eoshift(previous, +1, boundary_value, 1)
- down = eoshift(previous, -1, boundary_value, 1)
- left = eoshift(previous, +1, boundary_value, 2)
- right = eoshift(previous, -1, boundary_value, 2)
- result = (up + down + left + right) / 4.0
- if (maxval(abs(result - previous)) .lt. EPSILON) exit
- end do
-end function
-
-end program
diff --git a/org.eclipse.photran-samples/src-liebmann-2-arrays/.cvsignore b/org.eclipse.photran-samples/src-liebmann-2-arrays/.cvsignore
deleted file mode 100644
index 2e87cbd..0000000
--- a/org.eclipse.photran-samples/src-liebmann-2-arrays/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-a.exe
diff --git a/org.eclipse.photran-samples/src-liebmann-2-arrays/liebmann.f90 b/org.eclipse.photran-samples/src-liebmann-2-arrays/liebmann.f90
deleted file mode 100644
index 1ddab15..0000000
--- a/org.eclipse.photran-samples/src-liebmann-2-arrays/liebmann.f90
+++ /dev/null
@@ -1,77 +0,0 @@
-!!
-!! Liebmann's method to compute heat transfer across a 2-D surface
-!! J. Overbey 8/27/08
-!!
-!! Use liebmann-viz.sh in the main project directory to visualize the resulting
-!! table using gnuplot
-!!
-!! This version uses array sections to compute each iteration and the delta
-!!
-program liebmann_example
- implicit none
-
- integer, parameter :: SIZE = 200
- integer, parameter :: INTERIOR_SIZE = SIZE - 2
- real, parameter :: BOUNDARY_VALUE = 5.0
- real, parameter :: EPSILON = 0.001
-
- call main()
-
-contains
-
-subroutine main()
- real :: surface(SIZE, SIZE)
- integer :: i
-
- call liebmann(surface)
-
- do i = 1, SIZE; print *, surface(i, :); end do
-end subroutine
-
-subroutine liebmann(surface)
- real, intent(out) :: surface(SIZE, SIZE)
- real, dimension(SIZE, SIZE) :: prev, next
- real :: delta
-
- call init_with_boundaries(prev)
- call init_with_boundaries(next)
-
- do
- delta = iterate(prev, next)
- if (delta < EPSILON) then
- surface = next
- return
- end if
-
- delta = iterate(next, prev)
- if (delta < EPSILON) then
- surface = prev
- return
- end if
- end do
-end subroutine
-
-subroutine init_with_boundaries(surface)
- real, dimension(SIZE, SIZE), intent(in out) :: surface
-
- surface = 0.0
- surface(1, :) = BOUNDARY_VALUE
- surface(SIZE, :) = BOUNDARY_VALUE
- surface(:, 1) = BOUNDARY_VALUE
- surface(:, SIZE) = BOUNDARY_VALUE
-end subroutine
-
-function iterate(prev, next) result(epsilon)
- real, dimension(SIZE, SIZE), intent(in) :: prev
- real, dimension(SIZE, SIZE), intent(in out) :: next
- real :: epsilon
-
- next(2:SIZE-1, 2:SIZE-1) = &
- (prev(1:SIZE-2, 2:SIZE-1) + &
- prev(3:SIZE, 2:SIZE-1) + &
- prev(2:SIZE-1, 1:SIZE-2) + &
- prev(2:SIZE-1, 3:SIZE )) / 4.0
- epsilon = maxval(abs(next(2:SIZE-1,2:SIZE-1) - prev(2:SIZE-1,2:SIZE-1)))
-end function
-
-end program
diff --git a/org.eclipse.photran-samples/src-liebmann-3-loops/.cvsignore b/org.eclipse.photran-samples/src-liebmann-3-loops/.cvsignore
deleted file mode 100644
index 2e87cbd..0000000
--- a/org.eclipse.photran-samples/src-liebmann-3-loops/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-a.exe
diff --git a/org.eclipse.photran-samples/src-liebmann-3-loops/liebmann.f90 b/org.eclipse.photran-samples/src-liebmann-3-loops/liebmann.f90
deleted file mode 100644
index 8b41de9..0000000
--- a/org.eclipse.photran-samples/src-liebmann-3-loops/liebmann.f90
+++ /dev/null
@@ -1,84 +0,0 @@
-!!
-!! Liebmann's method to compute heat transfer across a 2-D surface
-!! J. Overbey 8/27/08
-!!
-!! Use liebmann-viz.sh in the main project directory to visualize the resulting
-!! table using gnuplot
-!!
-!! This version uses explicit loops through the array elements
-!!
-program liebmann_example
- implicit none
-
- integer, parameter :: SIZE = 200
- integer, parameter :: INTERIOR_SIZE = SIZE - 2
- real, parameter :: BOUNDARY_VALUE = 5.0
- real, parameter :: EPSILON = 0.001
-
- call main()
-
-contains
-
-subroutine main()
- real :: surface(SIZE, SIZE)
- integer :: i
-
- call liebmann(surface)
-
- do i = 1, SIZE; print *, surface(i, :); end do
-end subroutine
-
-subroutine liebmann(surface)
- real, dimension(SIZE, SIZE), intent(out) :: surface
- real, dimension(SIZE, SIZE) :: prev, next
- real :: delta
-
- call init_with_boundaries(prev)
- call init_with_boundaries(next)
-
- do
- delta = iterate(prev, next)
- if (delta < EPSILON) then
- surface = next
- return
- end if
-
- delta = iterate(next, prev)
- if (delta < EPSILON) then
- surface = prev
- return
- end if
- end do
-end subroutine
-
-subroutine init_with_boundaries(surface)
- real, dimension(SIZE, SIZE), intent(out) :: surface
-
- surface = 0.0
- surface(1, :) = BOUNDARY_VALUE
- surface(SIZE, :) = BOUNDARY_VALUE
- surface(:, 1) = BOUNDARY_VALUE
- surface(:, SIZE) = BOUNDARY_VALUE
-end subroutine
-
-function iterate(prev, next) result(delta)
- real, dimension(SIZE, SIZE), intent(in) :: prev
- real, dimension(SIZE, SIZE), intent(out) :: next
- real :: delta
-
- integer :: i, j
-
- delta = 0.0
- do j = 2, SIZE-1
- do i = 2, SIZE-1
- next(i,j) = &
- (prev(i-1, j) + &
- prev(i+1, j) + &
- prev(i, j-1) + &
- prev(i, j+1)) / 4.0
- delta = max(delta, abs(next(i,j)-prev(i,j)))
- end do
- end do
-end function
-
-end program
diff --git a/org.eclipse.photran-samples/src-line-fitting/.cvsignore b/org.eclipse.photran-samples/src-line-fitting/.cvsignore
deleted file mode 100644
index 2e87cbd..0000000
--- a/org.eclipse.photran-samples/src-line-fitting/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-a.exe
diff --git a/org.eclipse.photran-samples/src-line-fitting/bstfit.f90 b/org.eclipse.photran-samples/src-line-fitting/bstfit.f90
deleted file mode 100755
index 3647396..0000000
--- a/org.eclipse.photran-samples/src-line-fitting/bstfit.f90
+++ /dev/null
@@ -1,863 +0,0 @@
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!
-! BstFit
-!
-! This program provides the user with three options:
-! (1) Compute least-squares lines using vertical, horizontal, and
-! perpendicular distances
-! (2) Show the distances between points and a given line
-! (3) Compute linear, exponential, and power least-squares curves
-!
-! Points are read from an ASCII text file, where each line contains a x-value
-! followed by a space and a y-value. Values are expected to be real numbers.
-! The number of points is not specified; the program reads data from each line
-! until the end of the file (or 1,000 points, whichever comes first).
-!
-! Output is displayed to the screen.
-!
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-module Mdataset
-
- ! Declare all variables
- implicit none
-
- ! Declare a Tdataset type to hold data points, count, sums, etc.
- type :: Tdataset
- real :: datapt(4,1000) ! (x,y) data points from input file
- ! stored as (x, y, ln x, ln y)
- integer :: npts ! Number of points in input file
- real :: valsum(4) ! Sums of values of
- ! x, y, ln x, and ln y
- real :: sqsum(4) ! Sums of values of x**2, y**2,
- ! (ln x)**2, and (ln y)**2
- real :: xysum(3) ! Sums of products
- ! (xy, x ln y, ln x ln y)
- logical :: has_np(2) ! Are any x- or y-values nonpositive?
- end type Tdataset
-
-end module Mdataset
-
-program BstFitProj
-
- use Mdataset
-
- ! Declare all variables
- implicit none
-
- ! Type Name(s) Description
- integer :: if
- integer :: ichoice ! The user's choice from the menu
- type(Tdataset) :: ds ! Points and computed values
- real :: aval, bval ! Values of a and b (in y=ax+b)
- real :: slopem, intrcpt ! Slope and y-intercept of a line
- ! supplied by the user
- real :: ssvd, sshd, sspd ! Sum of squares of horiz, vert, and
- ! perpendicular distances
- logical :: suces ! Exponential or power fit success?
- integer :: outu ! Output file unit number
-
- ! Introduce the program
- write (*, *) 'This program performs least-squares fitting on ', &
- 'a set of n (x,y) pairs'
- write (*, *) ! Blank line
-
- ! Ask the user for the input file, and read the data from it
- call LoadDataSet(ds)
- write (*, *) ! Blank line
-
- ! Show the list of points
- write (*, *) 'Data points are:'
- call ShowDataPoints(ds)
- write (*, *) ! Blank line
-
- ! Ask the user for the name of the output file, and open it
- outu = OpenOutput()
- write (*, *) ! Blank line
-
- ! The user hasn't chosen anything from the menu yet
- ichoice = 0
-
- ! Let the user continue choosing from the menu until s/he chooses to exit
- do while (ichoice .ne. 4)
-
- ! Display a list of options, and allow the user to select one
- write (*, *) ! Blank line
- write (*, *) '===================================================='
- write (*, *) 'MENU'
- write (*, *) '===================================================='
- write (*, *) '1. Compute three linear least squares lines'
- write (*, *) '2. Compute distances between points and a given line'
- write (*, *) '3. Find linear, exponential, and power least squares'
- write (*, *) '4. Exit'
- write (*, *) '===================================================='
- write (*, *) ! Blank line
- write (*, *) 'Choose an option: '
- read (*, *) ichoice
-
- if (if .eq. 5) then
- print *, 'Why did you name a variable "if" anyway?'
- end if
-
- select case (ichoice)
- case (1) ! Option 1 - Three linear least squares lines
-
- write (outu, *) 'THREE LEAST SQUARES LINES:'
-
- ! Linear least squares, vertical distances
- call LinearLeastSquares(ds, 1, 2, aval, bval)
- write (outu, *) ! Blank line
- write (outu, *) 'Using vertical distances:'
- write (outu, *) 'y = ', trim(real2str(aval)), &
- 'x + ', trim(real2str(bval))
-
- ! Linear least squares, horizontal distances
- call LinearLeastSquares(ds, 2, 1, aval, bval)
- write (outu, *) ! Blank line
- write (outu, *) 'Using horizontal distances:'
- write (outu, *) 'y = ', trim(real2str(aval)), &
- 'x + ', trim(real2str(bval))
-
- ! Linear least squares, perpendicular distances
- call PerpLeastSquares(ds, 0, aval, bval)
- write (outu, *) ! Blank line
- write (outu, *) 'Using perpendicular distances:'
- write (outu, *) 'y = ', trim(real2str(aval)), &
- 'x + ', trim(real2str(bval))
-
- write (outu, *) '--OR--'
-
- call PerpLeastSquares(ds, 1, aval, bval)
- write (outu, *) 'y = ', trim(real2str(aval)), &
- 'x + ', trim(real2str(bval))
-
- write (outu, *) ! Blank line
-
- case (2) ! Option 2 - Distances between points and a given line
-
- write (outu, *) 'SUM OF SQUARES OF DISTANCES BETWEEN ', &
- 'POINTS AND A GIVEN LINE:'
-
- write (*, *) ! Blank line
- write (*, *) 'Enter the line''s slope and y-intercept: '
- read (*, *) slopem, intrcpt
-
- write (outu, *) ! Blank line
- write (outu, *) 'Using f(x) = ', trim(real2str(slopem)), &
- 'x + ', trim(real2str(intrcpt))
-
- write (outu, *) ! Blank line
- call SquareDistances(ds, slopem, intrcpt, ssvd, sshd, sspd)
-
- write (outu, *) 'Sum of squares of vertical distances: ', &
- ssvd
- write (outu, *) ! Blank line
- write (outu, *) 'Sum of squares of horizontal distances: ', &
- sshd
- write (outu, *) ! Blank line
- write (outu, *) 'Sum of squares of perpendicular distances: ', &
- sspd
- write (outu, *) ! Blank line
-
- case (3) ! Option 3 - Linear, exponential, and power least squares
-
- write (outu, *) 'LINEAR, EXPONENTIAL, AND POWER LEAST SQUARES:'
-
- call LinearLeastSquares(ds, 1, 2, aval, bval)
- write (outu, *) ! Blank line
- write (outu, *) 'Linear fit: y = ', trim(real2str(aval)), &
- 'x + ', trim(real2str(bval))
-
- call ExpLeastSquares(ds, aval, bval, suces)
- write (outu, *) ! Blank line
- if (suces .eqv. .true.) then
- write (outu, *) 'Exponential fit: y = ', trim(real2str(bval)), &
- ' * e^(', trim(real2str(aval)), 'x)'
- else
- write (outu, *) 'Unable to perform exponential fit: ', &
- 'there is at least one nonpositive y-value'
- end if
-
- call PowerLeastSquares(ds, aval, bval, suces)
- write (outu, *) ! Blank line
- if (suces .eqv. .true.) then
- write (outu, *) 'Power fit: y = ', trim(real2str(bval)), &
- ' * x^', trim(real2str(aval))
- else
- write (outu, *) 'Unable to perform power fit: ', &
- 'there is at least one nonpositive x- or y-value'
- end if
-
- write (outu, *) ! Blank line
-
- case (4) ! Option 4 - Exit
- ! Allow loop to stop
-
- case default
- write (*, *) 'The option you chose is not valid.'
- end select
-
- end do
-
- stop
-
-contains
-
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !
- ! LoadDataSet - Ask the user for an input filename, and read data points from
- ! that file into the ds%datapt array, storing the number
- ! of points in ds%npts and computing sums
- !
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- subroutine LoadDataSet(ds)
-
- ! Declare all variables
- implicit none
- ! Type Name(s) Description
- type(Tdataset), intent(out) :: ds ! Data points and sums
- character (len=64) :: infile ! Input filename
- integer :: ieof ! File status
- integer :: indx ! Loop counter
- integer :: inu ! Input file unit number
- integer :: imaxpairs ! Maximum number of pairs
-
- ! Default maximum number of pairs to array size
- imaxpairs = ubound(ds%datapt,2)
-
- ! Ask the user for the name of the input file
- write (*, *) 'Enter the input filename or - for keyboard input: '
- read (*, *) infile
-
- ! Determine the input unit number
- if (infile .eq. '-') then
-
- inu = 5 ! Read from keyboard (standard input)
-
- write (*, *) 'How many pairs? '
- read (*, *) imaxpairs
-
- ! Make sure this number is legal
- if (imaxpairs .lt. 1 .or. imaxpairs .gt. ubound(ds%datapt,2)) then
- write (*, *) 'Number of pairs must be between 1 and ', &
- trim(int2str(ubound(ds%datapt,2)))
- stop
- end if
-
- write (*, *) 'Enter pairs, one per line'
- write (*, *) ! End line before input
-
- else
-
- inu = 10 ! Read from file
-
- ! Open the file
- open (10, file = infile, status = 'old', iostat = ieof)
- if (ieof .ne. 0) then
- write (*, *) 'The specified file could not be opened.'
- stop
- end if
-
- end if
-
- ! Initialize the members of the dataset structure
- ds%npts = 0
- ds%valsum(1) = 0.0
- ds%valsum(2) = 0.0
- ds%valsum(3) = 0.0
- ds%valsum(4) = 0.0
- ds%sqsum(1) = 0.0
- ds%sqsum(2) = 0.0
- ds%sqsum(3) = 0.0
- ds%sqsum(4) = 0.0
- ds%xysum(1) = 0.0
- ds%xysum(2) = 0.0
- ds%xysum(3) = 0.0
- ds%has_np(1) = .false.
- ds%has_np(2) = .false.
-
- ! Read data points until EOF or imaxpairs reached
- do while (ds%npts < imaxpairs)
-
- ! Load the points into the datapt array,
- read (inu, *, end = 110) &
- ds%datapt(1, ds%npts + 1), &
- ds%datapt(2, ds%npts + 1)
-
- ! Calculate ln x, or set has_np if the value is nonpositive
- if (ds%datapt(1, ds%npts + 1) .le. 0) then
- ds%datapt(3, ds%npts + 1) = 0
- ds%has_np(1) = .true.
- else
- ds%datapt(3, ds%npts + 1) = log(ds%datapt(1, ds%npts + 1))
- end if
-
- ! Calculate ln y, or set has_np if the value is nonpositive
- if (ds%datapt(2, ds%npts + 1) .le. 0) then
- ds%datapt(4, ds%npts + 1) = 0
- ds%has_np(2) = .true.
- else
- ds%datapt(4, ds%npts + 1) = log(ds%datapt(2, ds%npts + 1))
- end if
-
- ! Update the number of points
- ds%npts = ds%npts + 1
-
- ! Update the value sums and square sums
- do indx = 1,4
- ds%valsum(indx) = ds%valsum(indx) + ds%datapt(indx, ds%npts)
- ds%sqsum(indx) = ds%sqsum(indx) + ds%datapt(indx, ds%npts)**2
- end do
-
- ! Update the xy sums (xy, x ln y, ln x ln y)
- ds%xysum(1) = ds%xysum(1) + &
- ds%datapt(1, ds%npts) * ds%datapt(2, ds%npts)
- ds%xysum(2) = ds%xysum(2) + &
- ds%datapt(1, ds%npts) * ds%datapt(4, ds%npts)
- ds%xysum(3) = ds%xysum(3) + &
- ds%datapt(3, ds%npts) * ds%datapt(4, ds%npts)
-
- end do
-
- ! If we get here and we're reading from a file, there are more than
- ! ubound(ds%datapt,2) points in the file, so display a warning
- if (inu .eq. 10) then
- write (*, *) 'WARNING: Only the first ', &
- trim(int2str(ubound(ds%datapt,2))), ' points will be used'
- end if
-
- ! We have read all points from the file; close it
-110 if (inu .eq. 10) then
- close (10)
- end if
-
- return
-
- end subroutine LoadDataSet
-
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !
- ! ShowDataPoints - Display the list of data points
- !
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- subroutine ShowDataPoints(ds)
-
- ! Declare all variables
- implicit none
- ! Type Name(s) Description
- type(Tdataset), intent(in) :: ds ! Data points and sums
- integer :: indx ! Loop counter
-
- ! Display a header
- write (*, '(a5,a2,2a10)') '=====', '==', '==========', &
- '=========='
- write (*, '(a5,2x,2a10)') 'i', 'x_i', 'y_i'
- write (*, '(a5,a2,2a10)') '=====', '==', '==========', &
- '=========='
-
- ! Display the list of points
- do indx = 1,ds%npts
- write (*, '(i5,a,2f10.4)') &
- indx, ': ', ds%datapt(1,indx), ds%datapt(2,indx)
- end do
-
- ! Display a footer
- write (*, '(a5,a2,2a10)') '=====', '==', '==========', &
- '=========='
-
- return
-
- end subroutine ShowDataPoints
-
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !
- ! SquareDistances - Calculate the sums of squares of distances of a set of
- ! points from a given line f(x) = mx + b
- !
- ! finv denotes the inverse of the function f
- !
- ! Sum of squares of vertical distances is returned in ssvd
- ! Sum of squares of horizontal distances is returned in sshd
- ! Sum of squares of perpendicular distances is returned in sspd
- !
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- subroutine SquareDistances(ds, slopem, intrcpt, ssvd, sshd, sspd)
-
- ! Declare all variables
- implicit none
- ! Type Name(s) Description
- type(Tdataset), intent(in) :: ds ! Data points and sums
- real, intent(in) :: slopem ! Slope of the line
- real, intent(in) :: intrcpt ! Line's y-intercept
- real :: fx ! f(x) at a given x
- real :: finvy ! finv(y) at a given y
- real :: perpx ! x-coord where a perpendicular
- ! line through (x_i,y_i)
- ! intersects
- real :: perpy ! y-coord of intersection
- real :: vdist, hdist, pdist ! Distances of a particular point
- real, intent(out) :: ssvd ! Sum of squares of vert dist's
- real, intent(out) :: sshd ! Sum of squares of horiz dist's
- real, intent(out) :: sspd ! Sum of squares of perp dist's
- integer :: indx ! Loop counter
-
- ! Initialize sums to 0.0
- ssvd = 0.0
- sshd = 0.0
- sspd = 0.0
-
- ! Add the squares of the distances
- do indx = 1,ds%npts
- ! Calculate f(x_i) = m x_i + b
- fx = slopem * ds%datapt(1,indx) + intrcpt
-
- ! Calculate finv(y_i) = (y_i - b) / m
- finvy = (ds%datapt(2,indx) - intrcpt) / slopem
-
- ! Vertical distance = |f(x_i) - y_i|
- vdist = abs(fx - ds%datapt(2,indx))
-
- ! Horizontal distance = |finv(y_i) - x_i|
- hdist = abs(finvy - ds%datapt(1,indx))
-
- ! Perpendicular distance is more complicated
-
- ! The perpendicular line through (x_i, y_i) will intersect
- ! at x-coordinate (y_i + x_i/m - b)/(m + 1/m)
- ! and y-coordinate f(perpx)
- perpx = (ds%datapt(2,indx) + ds%datapt(1,indx)/slopem - intrcpt) &
- / (slopem + 1.0/slopem)
- perpy = slopem * perpx + intrcpt
-
- ! Perpendicular distance is now given by the distance formula
- ! ________________________________
- ! / 2 2
- ! \/ (y_i - perpy) + (x_i - perpx)
- !
- pdist = sqrt((ds%datapt(2,indx) - perpy)**2 + (ds%datapt(1,indx) - perpx)**2)
-
- ! Now add these distances squared to the sums
- ssvd = ssvd + vdist**2
- sshd = sshd + hdist**2
- sspd = sspd + pdist**2
- end do
-
- return
-
- end subroutine SquareDistances
-
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !
- ! OpenOutput - Open an output file and return the unit number
- !
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- integer function OpenOutput() result(outu)
-
- ! Declare all variables
- implicit none
- ! Type Name(s) Description
- character (len=64) :: outfile ! Output filename
- integer :: ieof ! File status
-
- ! Ask the user for the name of the output file
- write (*, *) 'Enter the output filename or - for screen display: '
- read (*, *) outfile
-
- if (outfile .eq. '-') then
- outu = 6 ! Standard output
- else
-
- ! Open the file
- open (10, file = outfile, status = 'replace', iostat = ieof)
- if (ieof .ne. 0) then
- write (*, *) 'The specified file could not be opened.'
- stop
- end if
-
- outu = 10 ! File output
- end if
-
- return
-
- end function OpenOutput
-
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !
- ! LinearLeastSquares - Compute a linear least squares line y = ax + b
- ! using vertical or horizontal distances
- !
- ! For vertical distances, set xcol = 1 and ycol = 2
- ! For horizontal distances, set xcol = 2 and ycol = 1
- ! Other values of xcol and ycol are used by the power and exponential
- ! least squares functions (see below)
- ! Values of a and b will be stored in aval and bval
- !
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- subroutine LinearLeastSquares(ds, xcol, ycol, aval, bval)
-
- ! Declare all variables
- implicit none
- ! Type Name(s) Description
- type(Tdataset), intent(in) :: ds ! Data points and sums
- integer, intent(in) :: xcol ! Which column contains x-values
- ! (independent data)?
- integer, intent(in) :: ycol ! Which column contains y-values
- ! (dependent data)?
- integer :: xycol ! Which xyval to use?
- real, intent(out) :: aval ! Value of a
- real, intent(out) :: bval ! Value of b
- real :: dval ! Value of delta (denominator)
-
- ! Determine which xyval to use (xy, x ln y, or ln x ln y)
- if (xcol .eq. 1 .and. ycol .eq. 2 .or. xcol .eq. 2 .and. ycol .eq. 1) then
- xycol = 1
- else if (xcol .eq. 1 .and. ycol .eq. 4 .or. xcol .eq. 4 .and. ycol .eq. 1) then
- xycol = 2
- else if (xcol .eq. 3 .and. ycol .eq. 4 .or. xcol .eq. 4 .and. ycol .eq. 3) then
- xycol = 3
- else
- write (*, *) 'ERROR: Invalid call to LinearLeastSquares'
- write (*, *) 'Unable to continue'
- stop
- end if
-
- ! Compute the denominator:
- !
- ! n n 2
- ! ___ 2 ( ___ )
- ! delta = n \ x - ( \ x )
- ! /__ i ( /__ i )
- ! ( )
- ! i=1 i=1
-
- dval = ds%npts * ds%sqsum(xcol) - ds%valsum(xcol)**2
-
- ! Compute a:
- !
- ! n n n
- ! ___ ___ ___
- ! n \ x y - \ x \ y
- ! /__ i i /__ i /__ i
- !
- ! i=1 i=1 i=1
- ! a = ----------------------------------
- ! delta
-
- aval = ( ds%npts * ds%xysum(xycol) - &
- ds%valsum(xcol) * ds%valsum(ycol) ) &
- / dval
-
-
- ! Compute b:
- !
- ! n n n n
- ! ___ ___ 2 ___ ___
- ! \ y \ x - \ x \ x y
- ! /__ i /__ i /__ i /__ i i
- !
- ! i=1 i=1 i=1 i=1
- ! b = ------------------------------------------
- ! delta
-
- bval = ( ds%valsum(ycol) * ds%sqsum(xcol) - &
- ds%valsum(xcol) * ds%xysum(xycol) ) &
- / dval
-
- ! If we are calculating using horizontal distances, we need to
- ! solve x=ay+b for y (y = 1/a * x - b/a) and change a and b
- ! accordingly
- if (xcol .gt. ycol) then
- aval = 1.0 / aval
- bval = -bval * aval
- end if
-
- return
-
- end subroutine LinearLeastSquares
-
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !
- ! PerpLeastSquares - Compute a linear least squares line y = ax + b
- ! using perpendicular distances
- !
- ! To use a = -p + sqrt(...), set subtr to an even value
- ! To use a = -p - sqrt(...), set subtr to an odd value
- ! Values of a and b will be stored in aval and bval
- !
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- subroutine PerpLeastSquares(ds, subtr, aval, bval)
-
- ! Declare all variables
- implicit none
- ! Type Name(s) Description
- type(Tdataset), intent(in) :: ds ! Data points and sums
- integer, intent(in) :: subtr ! Determines which of two values
- ! of a will be chosen
- real, intent(out) :: aval ! Value of a
- real, intent(out) :: bval ! Value of b
- real :: pval ! Value of p
-
- ! Compute p:
- !
- ! ( n n ) [ ( n ) 2 ( n ) 2 ]
- ! ( ___ 2 ___ 2 ) [ ( ___ ) ( ___ ) ]
- ! n ( \ x - \ y ) - [ ( \ x ) - ( \ y ) ]
- ! ( /__ k /__ k ) [ ( /__ k ) ( /__ k ) ]
- ! ( ) [ ( ) ( ) ]
- ! ( k=1 k=1 ) [ k=1 k=1 ]
- ! p = ----------------------------------------------------------------------
- ! ( n n n )
- ! ( ___ ___ ___ )
- ! 2 ( n \ x y - \ x \ y )
- ! ( /__ k k /__ k /__ k )
- ! ( )
- ! ( k=1 k=1 k=1 )
-
- pval = (ds%npts*(ds%sqsum(1)-ds%sqsum(2)) - (ds%valsum(1)**2 - ds%valsum(2)**2)) &
- / (2 * (ds%npts*ds%xysum(1) - ds%valsum(1)*ds%valsum(2)))
-
- ! _______
- ! / 2
- ! Compute a = -p +/- / p + 1
- ! \/
-
- aval = -pval + (-1)**subtr * sqrt(pval**2 + 1)
-
- ! n n
- ! ___ ___
- ! \ y - a \ x
- ! /__ k /__ k
- !
- ! k=1 k=1
- ! Compute b = ---------------------
- ! n
-
- bval = ( ds%valsum(2) - aval * ds%valsum(1) ) / ds%npts
-
- return
-
- end subroutine PerpLeastSquares
-
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! ax
- ! ExpLeastSquares - Compute an exponential least squares curve y = b e
- ! using vertical distances
- !
- ! Values of a and b will be stored in aval and bval
- !
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- subroutine ExpLeastSquares(ds, aval, bval, suces)
-
- ! Declare all variables
- implicit none
- ! Type Name(s) Description
- type(Tdataset), intent(in) :: ds ! Data points and sums
- real, intent(out) :: aval ! Value of a
- real, intent(out) :: bval ! Value of b
- logical, intent(out) :: suces ! Success?
-
- ! Make sure all y-values are positive
- if (ds%has_np(2) .eqv. .true.) then
- suces = .false.
- return
- end if
-
- ! Exponential least squares is done by reducing the problem to a linear
- ! one, which is more easily solved.
-
- ! We want y = b e^(ax)
- ! ==> ln(y) = ln(b e^(ax)
- ! ==> ln(y) = ln(b) + ax
- ! ==> ln(y) = ax + ln(b)
-
- ! Use linear least squares on ln(y) = ax + ln(b)
- call LinearLeastSquares(ds, 1, 4, aval, bval)
- ! The variable bval now contains ln(b); make it contain b instead
- bval = exp(bval)
-
- ! Now ln(y) = ax + ln(b)
- ! So y = e^(ax + ln(b))
- ! ==> y = e^(ax) e^(ln(b))
- ! ==> y = e^(ax) b
- ! ==> y = b e^(ax)
-
- suces = .true.
- return
-
- end subroutine ExpLeastSquares
-
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! a
- ! PowerLeastSquares - Compute an least squares curve y = b x
- ! using vertical distances
- !
- ! Values of a and b will be stored in aval and bval
- !
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- subroutine PowerLeastSquares(ds, aval, bval, suces)
-
- ! Declare all variables
- implicit none
- ! Type Name(s) Description
- type(Tdataset), intent(in) :: ds ! Data points and sums
- real, intent(out) :: aval ! Value of a
- real, intent(out) :: bval ! Value of b
- logical, intent(out) :: suces ! Success?
-
- ! Make sure all values are positive
- if ((ds%has_np(1) .eqv. .true.) .or. (ds%has_np(2) .eqv. .true.)) then
- suces = .false.
- return
- end if
-
- ! Exponential least squares is done by reducing the problem to a linear
- ! one, which is more easily solved.
-
- ! We want y = b x^a
- ! ==> ln(y) = ln(b x^a)
- ! ==> ln(y) = ln(b) + ln(x^a)
- ! ==> ln(y) = ln(b) + a ln(x)
- ! ==> ln(y) = a ln(x) + ln(b)
-
- ! Use linear least squares on ln(y) = a ln(x) + ln(b)
- call LinearLeastSquares(ds, 3, 4, aval, bval)
- ! The variable bval now contains ln(b); make it contain b instead
- bval = exp(bval)
-
- ! Now ln(y) = a ln(x) + ln(b)
- !
- ! a ln(x) + ln(b)
- ! ==> y = e
- !
- ! a ln(x) ln(b)
- ! ==> y = e e
- !
- ! a ln(x)
- ! ==> y = (e ) b
- !
- ! ln(x) a
- ! ==> y = (e ) b
- !
- ! a
- ! ==> y = x b
- !
- ! a
- ! ==> y = b x
-
- suces = .true.
- return
-
- end subroutine PowerLeastSquares
-
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !
- ! int2str - Convert an integer i to a string
- !
- ! The string will need to be trim()ed before displaying
- !
- ! Shouldn't something like this be built in?!
- !
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- character(len=32) function int2str(i) result(s)
-
- ! Declare all variables
- implicit none
-
- ! Type Name Description
- integer, intent(in) :: i ! The number to convert
- integer :: ival ! The number, with leading digits removed
- integer :: ndigits ! The number of digits in the number
- integer :: indx ! Loop counter
- integer :: is_neg ! 0 if negative, 1 if positive
-
- ! Start with a 0 string, overwriting the 0 if necessary
- s = '0'
-
- ! Handle the cases where i is <= 0
- if (i .eq. 0) then
- return
- else if (i .lt. 0) then
- s(1:1) = '-' ! Prefix output with a minus sign
- is_neg = 1 ! There is one extra character at the start of the number
- ival = -i ! Now write out the absolute value of i
- else
- is_neg = 0 ! It's not negative
- ival = i ! We want to write out i
- end if
-
- ! The number of digits needed to write out an integer i in base b is
- ! | |
- ! | log (i) | + 1
- ! |_ b _|
- !
- ndigits = floor(log10(ival*1.0)) + 1
-
- ! Write out the digits in order, starting at the left
- do indx = 1, ndigits
- ! What is the first digit's ASCII code? Append it to the string
- s(indx+is_neg:indx+is_neg) = char(48 + ival/10**(ndigits-indx))
- ! Now remove the first digit from ival
- ival = ival - (ival/10**(ndigits-indx))*10**(ndigits-indx)
- end do
-
- return
-
- end function int2str
-
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !
- ! real2str - Convert a real number r to a string
- !
- ! The string will need to be trim()ed before displaying
- !
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- character(len=128) function real2str(r) result(s)
-
- ! Declare all variables
- implicit none
-
- ! Type Name Description
- real, intent(in) :: r ! The number to convert
- real :: rval ! Value of |r|
- integer :: intpt ! The integer part of the number
- integer :: ifracpt ! The fractional part of the number
- ! (rounded somewhat)
- character(len=1) :: is_neg ! '-' if negative, ' ' otherwise
- character(len=32) :: sintpt ! The integer part, as a string
- character(len=32) :: slead0 ! Leading 0s for fractional part
- character(len=32) :: sfracpt ! The fractional part, as a string
- integer :: nfdigs=4 ! Number of fractional digits
-
- ! If the number's negative, remember this, but make it positive
- if (r .lt. 0) then
- is_neg = '-'
- rval = -r
- else
- is_neg = ' '
- rval = r
- end if
-
- ! Integer part = |_ r _|
- intpt = floor(rval)
-
- ! To get the fractional part, subtract off the integer part, multiply
- ! by 10**(# decimal places), and take the floor to drop off extra digits
- ifracpt = floor((rval-intpt) * 10**nfdigs)
-
- ! Now convert the integer and fractional parts to strings
- sintpt = int2str(intpt)
- sfracpt = int2str(ifracpt)
- slead0 = repeat('0', nfdigs-len_trim(sfracpt))
-
- ! Now just concatenate the number together
- s = trim(is_neg) // & ! Negative sign (if any)
- trim(sintpt) // & ! Integer part
- '.' // & ! Decimal point
- trim(slead0) // & ! Fractional part leading zeros
- int2str(ifracpt) ! Fractional part
-
- return
-
- end function real2str
-
-end program BstFitProj
diff --git a/org.eclipse.photran-samples/src-modules/.cvsignore b/org.eclipse.photran-samples/src-modules/.cvsignore
deleted file mode 100644
index 2e87cbd..0000000
--- a/org.eclipse.photran-samples/src-modules/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-a.exe
diff --git a/org.eclipse.photran-samples/src-modules/module1.f90 b/org.eclipse.photran-samples/src-modules/module1.f90
deleted file mode 100644
index d7ade86..0000000
--- a/org.eclipse.photran-samples/src-modules/module1.f90
+++ /dev/null
@@ -1,14 +0,0 @@
-module Module1
-contains
- subroutine say_hi
- print *, "Hi"
- end subroutine
-
- subroutine say_bye
- print *, "Bye"
- end subroutine
-
- subroutine rename_this
- print *, "Renamed in 1"
- end subroutine
-end module
diff --git a/org.eclipse.photran-samples/src-modules/module2.f90 b/org.eclipse.photran-samples/src-modules/module2.f90
deleted file mode 100644
index b9e484f..0000000
--- a/org.eclipse.photran-samples/src-modules/module2.f90
+++ /dev/null
@@ -1,14 +0,0 @@
-module Module2
-contains
- subroutine say_konnichiwa
- print *, "Kon'nichiwa"
- end subroutine
-
- subroutine say_sayonara
- print *, "Sayonara"
- end subroutine
-
- subroutine rename_this
- print *, "Renamed in 2"
- end subroutine
-end module
diff --git a/org.eclipse.photran-samples/src-modules/zmain.f90 b/org.eclipse.photran-samples/src-modules/zmain.f90
deleted file mode 100644
index d4b8d98..0000000
--- a/org.eclipse.photran-samples/src-modules/zmain.f90
+++ /dev/null
@@ -1,26 +0,0 @@
-program MyProgram
-!implicit none
-
-use module1, renamed_in_1 => rename_this
-use module2, only: say_konnichiwa, renamed_in_2 => rename_this
-
-call start
-
-call say_hi
-call say_bye
-call say_konnichiwa
-!call say_sayonara
-call renamed_in_1
-call renamed_in_2
-
-stop
-
-contains
-
-subroutine start
- implicit none
- integer :: i
- print *, i
-end subroutine
-
-end
diff --git a/org.eclipse.photran-samples/src-scoping/.cvsignore b/org.eclipse.photran-samples/src-scoping/.cvsignore
deleted file mode 100644
index 2e87cbd..0000000
--- a/org.eclipse.photran-samples/src-scoping/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-a.exe
diff --git a/org.eclipse.photran-samples/src-scoping/scoping.f90 b/org.eclipse.photran-samples/src-scoping/scoping.f90
deleted file mode 100644
index 9cc9b36..0000000
--- a/org.eclipse.photran-samples/src-scoping/scoping.f90
+++ /dev/null
@@ -1,26 +0,0 @@
-program p
- call ctn1
- call ctn2
- call ext1
- call ext2
-contains
- subroutine ctn1
- call ctn2
- call ext1
- call ext2
- end subroutine
-
- subroutine ctn2
- call ctn1
- call ext1
- call ext2
- end subroutine
-end program p
-
-subroutine ext1
- call ext2
-end subroutine ext1
-
-subroutine ext2
- call ext1
-end subroutine ext2
diff --git a/org.eclipse.photran.core.vpg.tests.failing/.classpath b/org.eclipse.photran.core.vpg.tests.failing/.classpath
deleted file mode 100644
index 472ee29..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.photran.core.vpg.tests.failing/.project b/org.eclipse.photran.core.vpg.tests.failing/.project
deleted file mode 100644
index 82783c8..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.photran.core.vpg.tests.failing</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>net.sourceforge.metrics.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>net.sourceforge.metrics.nature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.photran.core.vpg.tests.failing/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.photran.core.vpg.tests.failing/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 20978b8..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,270 +0,0 @@
-#Thu Oct 08 11:30:47 CDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=20
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=18
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=18
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=20
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=20
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=20
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=do not insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=100
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=true
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=true
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=100
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/org.eclipse.photran.core.vpg.tests.failing/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.photran.core.vpg.tests.failing/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 25d194d..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-#Thu Oct 08 11:30:47 CDT 2009
-eclipse.preferences.version=1
-formatter_profile=_Photran
-formatter_settings_version=11
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) ${year} University of Illinois at Urbana-Champaign and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * UIUC - Initial API and implementation\r\n *******************************************************************************/</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * \r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/org.eclipse.photran.core.vpg.tests.failing/META-INF/MANIFEST.MF b/org.eclipse.photran.core.vpg.tests.failing/META-INF/MANIFEST.MF
deleted file mode 100644
index 8956fa9..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Photran VPG Failing Unit Tests
-Bundle-SymbolicName: org.eclipse.photran.core.vpg.tests.failing
-Bundle-Version: 1.0.0
-Bundle-Vendor: Eclipse.org
-Require-Bundle: org.eclipse.photran.core.vpg.tests,
- org.eclipse.photran.ui.vpg,
- org.junit,
- org.eclipse.photran.core,
- org.eclipse.photran.core.vpg,
- org.eclipse.cdt.core,
- org.eclipse.cdt.core.tests,
- org.eclipse.jface,
- org.eclipse.search
diff --git a/org.eclipse.photran.core.vpg.tests.failing/build.properties b/org.eclipse.photran.core.vpg.tests.failing/build.properties
deleted file mode 100644
index 34d2e4d..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .
diff --git a/org.eclipse.photran.core.vpg.tests.failing/intro-implicit-test-code/hello.f90 b/org.eclipse.photran.core.vpg.tests.failing/intro-implicit-test-code/hello.f90
deleted file mode 100644
index 3f0bedf..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/intro-implicit-test-code/hello.f90
+++ /dev/null
@@ -1,20 +0,0 @@
-program Hello
- integer :: i = 3 !!! a variable !!!
-
- call Sub(Fn(i) + 1)
-
- print *, "The integer is ", i
-
-contains ! a comment
-
-subroutine Sub(x) ! start
-
- print *, "In the subroutine, the integer is ", x
-end subroutine Sub ! end
-
-end program
-
-integer function Fn(n) result(y)
- print *, "You sent", n, "to the function"
- y = n
-end function
diff --git a/org.eclipse.photran.core.vpg.tests.failing/intro-implicit-test-code/hello.f90.result b/org.eclipse.photran.core.vpg.tests.failing/intro-implicit-test-code/hello.f90.result
deleted file mode 100644
index 039a260..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/intro-implicit-test-code/hello.f90.result
+++ /dev/null
@@ -1,23 +0,0 @@
-program Hello
- implicit none
- integer :: i = 3 !!! a variable !!!
-
- call Sub(Fn(i) + 1)
-
- print *, "The integer is ", i
-
-contains ! a comment
-
-subroutine Sub(x) ! start
- implicit none
- real :: x
-
- print *, "In the subroutine, the integer is ", x
-end subroutine Sub ! end
-
-end program
-
-integer function Fn(n) result(y)
- print *, "You sent", n, "to the function"
- y = n
-end function
diff --git a/org.eclipse.photran.core.vpg.tests.failing/intro-implicit-test-code/hello2.f90 b/org.eclipse.photran.core.vpg.tests.failing/intro-implicit-test-code/hello2.f90
deleted file mode 100644
index b753872..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/intro-implicit-test-code/hello2.f90
+++ /dev/null
@@ -1,20 +0,0 @@
-program Hello
- integer :: i = 3 !!! a variable !!!
-
- call Sub(Fn(i) + 1)
-
- print *, "The integer is ", i
-
-contains ! a comment
-
-subroutine Sub(x) ! start
-
- print *, "In the subroutine, the integer is ", x
-end subroutine Sub ! end
-
-integer function Fn(n) result(y)
- print *, "You sent", n, "to the function"
- y = n
-end function
-
-end program
diff --git a/org.eclipse.photran.core.vpg.tests.failing/intro-implicit-test-code/hello2.f90.result b/org.eclipse.photran.core.vpg.tests.failing/intro-implicit-test-code/hello2.f90.result
deleted file mode 100644
index 8ac7f99..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/intro-implicit-test-code/hello2.f90.result
+++ /dev/null
@@ -1,26 +0,0 @@
-program Hello
- implicit none
- integer :: i = 3 !!! a variable !!!
-
- call Sub(Fn(i) + 1)
-
- print *, "The integer is ", i
-
-contains ! a comment
-
-subroutine Sub(x) ! start
- implicit none
- real :: x
-
- print *, "In the subroutine, the integer is ", x
-end subroutine Sub ! end
-
-integer function Fn(n) result(y)
- implicit none
- integer :: n
- integer :: y
- print *, "You sent", n, "to the function"
- y = n
-end function
-
-end program
diff --git a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/00-README.txt b/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/00-README.txt
deleted file mode 100644
index f031a7e..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/00-README.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-The classes in this package are identical to those in the same package in the
-org.eclipse.photran.core.vpg.tests plug-in, EXCEPT that they create an instance
-of FailingParserTestSuite
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialFromTheWWW.java b/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialFromTheWWW.java
deleted file mode 100644
index a59c39e..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialFromTheWWW.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.a_parser;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.FailingParserTestSuite;
-
-public class ParseProjectConfidentialFromTheWWW
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new FailingParserTestSuite("../../org.eclipse.photran-projects.confidential.from-the-www", false, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialLAPACK.java b/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialLAPACK.java
deleted file mode 100644
index 47cd108..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialLAPACK.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.a_parser;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.FailingParserTestSuite;
-
-public class ParseProjectConfidentialLAPACK
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new FailingParserTestSuite("../../org.eclipse.photran-projects.confidential.lapack", true, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialNagleFortran2003.java b/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialNagleFortran2003.java
deleted file mode 100644
index 8038987..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialNagleFortran2003.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.a_parser;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.FailingParserTestSuite;
-
-public class ParseProjectConfidentialNagleFortran2003
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new FailingParserTestSuite("../../org.eclipse.photran-projects.confidential.nagle-fortran2003", false, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialPOP.java b/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialPOP.java
deleted file mode 100644
index 0e6cbae..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialPOP.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.a_parser;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.FailingParserTestSuite;
-
-public class ParseProjectConfidentialPOP
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new FailingParserTestSuite("../../org.eclipse.photran-projects.confidential.pop", false, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialWaltBrainerdFortran2003.java b/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialWaltBrainerdFortran2003.java
deleted file mode 100644
index 8f382b2..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialWaltBrainerdFortran2003.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.a_parser;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.FailingParserTestSuite;
-
-public class ParseProjectConfidentialWaltBrainerdFortran2003
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new FailingParserTestSuite("../../org.eclipse.photran-projects.confidential.walt-brainerd-fortran2003", false, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialWaltBrainerdTestSuiteFixed.java b/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialWaltBrainerdTestSuiteFixed.java
deleted file mode 100644
index d9532f7..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialWaltBrainerdTestSuiteFixed.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.a_parser;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.FailingParserTestSuite;
-
-public class ParseProjectConfidentialWaltBrainerdTestSuiteFixed
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new FailingParserTestSuite("../../org.eclipse.photran-projects.confidential.walt-brainerd-test-suite",
- true, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialWaltBrainerdTestSuiteFree.java b/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialWaltBrainerdTestSuiteFree.java
deleted file mode 100644
index 515c3e2..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/a_parser/ParseProjectConfidentialWaltBrainerdTestSuiteFree.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.a_parser;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.FailingParserTestSuite;
-
-public class ParseProjectConfidentialWaltBrainerdTestSuiteFree
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new FailingParserTestSuite("../../org.eclipse.photran-projects.confidential.walt-brainerd-test-suite",
- false, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/f_source_editing/TestReindent.java b/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/f_source_editing/TestReindent.java
deleted file mode 100644
index 1078ff9..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/internal/core/tests/f_source_editing/TestReindent.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.eclipse.photran.internal.core.tests.f_source_editing;
-
-import org.eclipse.photran.internal.core.tests.AbstractSourceEditorTestCase;
-
-public class TestReindent extends AbstractSourceEditorTestCase
-{
- public void test() {}
-
-// public void testPasteQOutsideAndReindent() throws Exception
-// {
-// ASTExecutableProgramNode ast = load("hello-1-initial.f90");
-//
-// ASTSubroutineSubprogramNode q = ast.getASTProgramUnit(1).getASTMainProgram().getASTMainRange().getASTBodyPlusInternals().getASTInternalSubprogram(2).getASTSubroutineSubprogram();
-// SourceEditor.cut(q);
-// SourceEditor.pasteAsFirstChild(q, ast.getASTProgramUnit(0), ast, true);
-// assertEquals(load("hello-7-q-pasted-formatted.f90"), ast);
-// }
-//
-// public void testPasteQAtBottomAndReindent() throws Exception
-// {
-// ASTExecutableProgramNode ast = load("hello-1-initial.f90");
-//
-// ASTSubroutineSubprogramNode q = ast.getASTProgramUnit(1).getASTMainProgram().getASTMainRange().getASTBodyPlusInternals().getASTInternalSubprogram(2).getASTSubroutineSubprogram();
-// SourceEditor.cut(q);
-// SourceEditor.pasteAsLastChild(q, ast.getASTProgramUnit(0), ast, true);
-// assertEquals(load("hello-8-q-pasted-at-bottom-formatted.f90"), ast);
-// }
-//
-// public void testPasteTAboveQAndReindent() throws Exception
-// {
-// ASTExecutableProgramNode ast = load("hello-1-initial.f90");
-//
-// ASTSubroutineSubprogramNode t = ast.getASTProgramUnit(0).getASTSubroutineSubprogram();
-// ParseTreeNode internalSubprogram2 = ast.getASTProgramUnit(1).getASTMainProgram().getASTMainRange().getASTBodyPlusInternals().getASTInternalSubprogram(2);
-// SourceEditor.cut(t);
-// SourceEditor.pasteAsFirstChild(t, internalSubprogram2, ast, true);
-// assertEquals(load("hello-9-t-above-q.f90"), ast);
-// }
-}
diff --git a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/refactoring/tests/introimplicitnone/IntroImplicitTestSuite.java b/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/refactoring/tests/introimplicitnone/IntroImplicitTestSuite.java
deleted file mode 100644
index 17a6006..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/refactoring/tests/introimplicitnone/IntroImplicitTestSuite.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.eclipse.photran.refactoring.tests.introimplicitnone;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-public class IntroImplicitTestSuite extends TestSuite
-{
- public static Test suite() throws Exception
- {
- TestSuite suite = new TestSuite();
- suite.addTest(getSuiteFor("hello.f90"));
- suite.addTest(getSuiteFor("hello2.f90"));
- return suite;
- }
-
- private static TestSuite getSuiteFor(String baseFilename)
- {
- TestSuite subSuite = new TestSuite("Introducing Implicit None in " + baseFilename);
- subSuite.addTest(new IntroImplicitTestCase(baseFilename, new LineCol(1, 9), true));
- return subSuite;
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/search/tests/VPGSearchTestSuite.java b/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/search/tests/VPGSearchTestSuite.java
deleted file mode 100644
index 271eab0..0000000
--- a/org.eclipse.photran.core.vpg.tests.failing/src/org/eclipse/photran/search/tests/VPGSearchTestSuite.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package org.eclipse.photran.search.tests;
-
-import java.util.ArrayList;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.photran.internal.ui.search.VPGSearchQuery;
-import org.eclipse.search.ui.text.Match;
-
-/**
- * The suite of tests for testing search functionality
- *
- * @author Jeff Dammeyer, Andrew Deason, Joe Digiovanna, Nick Sexmith
- */
-public class VPGSearchTestSuite extends TestSuite
-{
- /**
- * Adds all the tests to the suite for searching tests
- */
- public static Test suite() throws Exception
- {
- TestSuite suite = new TestSuite();
- ArrayList<Match> matches = new ArrayList<Match>();
-
- //test 4
- //Tests FIND_REFERENCES
- matches = new ArrayList<Match>();
- matches.add(new Match("foo.f90",30,1));
- matches.add(new Match("implicitTest.f90",22,1));
- suite.addTest(getSuiteFor("testFour", new VPGSearchTestCase("a",
- VPGSearchQuery.FIND_REFERENCES | VPGSearchQuery.FIND_ALL_TYPES, matches, false)));
-
- return suite;
- }
-
- private static TestSuite getSuiteFor(String baseFilename, VPGSearchTestCase testCase)
- {
- TestSuite subSuite = new TestSuite(baseFilename);
- subSuite.addTest(testCase);
- return subSuite;
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/.classpath b/org.eclipse.photran.core.vpg.tests/.classpath
deleted file mode 100644
index 017e786..0000000
--- a/org.eclipse.photran.core.vpg.tests/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="lib" path="/org.eclipse.photran.core.vpg/vpg-eclipse.jar"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.photran.core.vpg.tests/.project b/org.eclipse.photran.core.vpg.tests/.project
deleted file mode 100644
index 67cbcd3..0000000
--- a/org.eclipse.photran.core.vpg.tests/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.photran.core.vpg.tests</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>net.sourceforge.metrics.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>net.sourceforge.metrics.nature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.photran.core.vpg.tests/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.photran.core.vpg.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 4776e5f..0000000
--- a/org.eclipse.photran.core.vpg.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,270 +0,0 @@
-#Thu Oct 08 11:30:38 CDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=20
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=18
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=18
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=20
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=20
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=20
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=do not insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=100
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=true
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=true
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=100
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/org.eclipse.photran.core.vpg.tests/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.photran.core.vpg.tests/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index b439e4e..0000000
--- a/org.eclipse.photran.core.vpg.tests/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-#Thu Oct 08 11:30:38 CDT 2009
-eclipse.preferences.version=1
-formatter_profile=_Photran
-formatter_settings_version=11
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) ${year} University of Illinois at Urbana-Champaign and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * UIUC - Initial API and implementation\r\n *******************************************************************************/</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * \r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/org.eclipse.photran.core.vpg.tests/META-INF/MANIFEST.MF b/org.eclipse.photran.core.vpg.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index f76d7db..0000000
--- a/org.eclipse.photran.core.vpg.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,33 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Photran Virtual Program Graph Tests Plug-in
-Bundle-SymbolicName: org.eclipse.photran.core.vpg.tests
-Bundle-Version: 1.0.0
-Bundle-Vendor: Eclipse.org
-Require-Bundle: org.eclipse.photran.core.vpg,
- org.eclipse.photran.ui.vpg,
- org.eclipse.cdt.core.tests,
- org.eclipse.core.resources,
- org.eclipse.ltk.core.refactoring,
- org.eclipse.core.runtime,
- org.eclipse.jface.text,
- org.junit,
- org.eclipse.cdt.core,
- org.eclipse.jface,
- org.eclipse.search
-Eclipse-LazyStart: true
-Bundle-Activator: org.eclipse.photran.refactoring.tests.Activator
-Export-Package: org.eclipse.photran.internal.core.tests,
- org.eclipse.photran.internal.core.tests.f_source_editing,
- org.eclipse.photran.internal.core.tests.g_type_check,
- org.eclipse.photran.internal.core.tests.h_interface_links,
- org.eclipse.photran.internal.core.tests.projects,
- org.eclipse.photran.internal.core.tests.serialization,
- org.eclipse.photran.internal.core.tests.x_cpreprocessor,
- org.eclipse.photran.refactoring.tests,
- org.eclipse.photran.refactoring.tests.extractprocedure,
- org.eclipse.photran.refactoring.tests.infrastructure,
- org.eclipse.photran.refactoring.tests.introimplicitnone,
- org.eclipse.photran.refactoring.tests.movesavedtocommonblock,
- org.eclipse.photran.refactoring.tests.rename,
- org.eclipse.photran.search.tests
diff --git a/org.eclipse.photran.core.vpg.tests/Makefile b/org.eclipse.photran.core.vpg.tests/Makefile
deleted file mode 100644
index 6d0965f..0000000
--- a/org.eclipse.photran.core.vpg.tests/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-all:
- $(MAKE) -C rename-test-code
-
-clean:
- $(MAKE) clean -C rename-test-code
diff --git a/org.eclipse.photran.core.vpg.tests/NOTE b/org.eclipse.photran.core.vpg.tests/NOTE
deleted file mode 100644
index 281ce20..0000000
--- a/org.eclipse.photran.core.vpg.tests/NOTE
+++ /dev/null
@@ -1,18 +0,0 @@
-Due to licensing restrictions, most of the Fortran code used for testing
-the parser cannot be made publicly available. The corresponding JUnit
-tests will NOT fail if these directories do not exist; an informational
-message will be displayed instead.
-
-If you are working on the lexer/parser and require access to this code,
-please e-mail one of the developers.
-
-To add more confidential Fortran code to the parser test suite:
-(1) Add the code in subdirectories under parser-test-code
- (by convention, their names start with "confidential-")
-(2) Add these subdirectories to .cvsignore
-(3) Use the ParseIBEAM or ParseConfidential*Files classes as
- examples of how to have the code parsed. Be sure to pass
- "false" for the mustExist parameter.
-(4) Distribute the code to the other developers working on the parser.
-
---Jeff Overbey (23 Sept 06)
diff --git a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/module2.f90 b/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/module2.f90
deleted file mode 100644
index fbc4a9a..0000000
--- a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/module2.f90
+++ /dev/null
@@ -1,11 +0,0 @@
-module module2
- implicit none
-
- contains
- subroutine help_common2
- common /block/ d, e, f
- integer :: d
- real :: e
- double precision :: f
- end subroutine help_common2
-end module module2
diff --git a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/module3.f90 b/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/module3.f90
deleted file mode 100644
index b029e6a..0000000
--- a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/module3.f90
+++ /dev/null
@@ -1,14 +0,0 @@
-module module3
- implicit none
- integer :: onlyTest = 2
-
- contains
- subroutine help_common3
- common /block/ r, s, t
- integer :: r
- real :: s
- double precision :: t
-
- print *, onlyTest
- end subroutine help_common3
-end module module3
diff --git a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/module4.f90 b/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/module4.f90
deleted file mode 100644
index 1df11d8..0000000
--- a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/module4.f90
+++ /dev/null
@@ -1,10 +0,0 @@
-module module4
- implicit none
- integer f
-
- contains
- subroutine help_common4
- common /mem/ a, b, c
- integer :: a, b, c
- end subroutine help_common4
-end module module4
diff --git a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/module5.f90 b/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/module5.f90
deleted file mode 100644
index 0888ffa..0000000
--- a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/module5.f90
+++ /dev/null
@@ -1,3 +0,0 @@
-module module5
- implicit none
-end module module5
diff --git a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test1.f90 b/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test1.f90
deleted file mode 100644
index 11a3ddb..0000000
--- a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test1.f90
+++ /dev/null
@@ -1,27 +0,0 @@
-program program1
-use module2
-use module3
-use module4, only: help_common4
-implicit none
-
-common /block/ a, b, c, /mem/ r, f, t
-integer :: a
-real :: b
-double precision :: c
-
-integer :: r, f, t
-
-a = 5
-b = 4.6
-c = 2.345
-
-call helper
-end program program1
-
-subroutine helper
-implicit none
-common /block/ e, f, g
-integer :: e
-real :: f
-double precision :: g
-end subroutine helper
diff --git a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test1.f90.result b/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test1.f90.result
deleted file mode 100644
index 11a3ddb..0000000
--- a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test1.f90.result
+++ /dev/null
@@ -1,27 +0,0 @@
-program program1
-use module2
-use module3
-use module4, only: help_common4
-implicit none
-
-common /block/ a, b, c, /mem/ r, f, t
-integer :: a
-real :: b
-double precision :: c
-
-integer :: r, f, t
-
-a = 5
-b = 4.6
-c = 2.345
-
-call helper
-end program program1
-
-subroutine helper
-implicit none
-common /block/ e, f, g
-integer :: e
-real :: f
-double precision :: g
-end subroutine helper
diff --git a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test2.f90 b/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test2.f90
deleted file mode 100644
index 11a3ddb..0000000
--- a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test2.f90
+++ /dev/null
@@ -1,27 +0,0 @@
-program program1
-use module2
-use module3
-use module4, only: help_common4
-implicit none
-
-common /block/ a, b, c, /mem/ r, f, t
-integer :: a
-real :: b
-double precision :: c
-
-integer :: r, f, t
-
-a = 5
-b = 4.6
-c = 2.345
-
-call helper
-end program program1
-
-subroutine helper
-implicit none
-common /block/ e, f, g
-integer :: e
-real :: f
-double precision :: g
-end subroutine helper
diff --git a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test2.f90.result b/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test2.f90.result
deleted file mode 100644
index 470fefa..0000000
--- a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test2.f90.result
+++ /dev/null
@@ -1,27 +0,0 @@
-program program1
-use module2
-use module3, only: help_common3, onlytest
-use module4, only: help_common4
-implicit none
-
-common /block/ a, b, c, /mem/ r, f, t
-integer :: a
-real :: b
-double precision :: c
-
-integer :: r, f, t
-
-a = 5
-b = 4.6
-c = 2.345
-
-call helper
-end program program1
-
-subroutine helper
-implicit none
-common /block/ e, f, g
-integer :: e
-real :: f
-double precision :: g
-end subroutine helper
diff --git a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test3.f90 b/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test3.f90
deleted file mode 100644
index 2002d16..0000000
--- a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test3.f90
+++ /dev/null
@@ -1,28 +0,0 @@
-program program1
-use module2
-use module3
-use module4, only: help_common4
-use module5
-implicit none
-
-common /block/ a, b, c, /mem/ r, f, t
-integer :: a
-real :: b
-double precision :: c
-
-integer :: r, f, t
-
-a = 5
-b = 4.6
-c = 2.345
-
-call helper
-end program program1
-
-subroutine helper
-implicit none
-common /block/ e, f, g
-integer :: e
-real :: f
-double precision :: g
-end subroutine helper
diff --git a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test6.f90 b/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test6.f90
deleted file mode 100644
index 8218a79..0000000
--- a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test6.f90
+++ /dev/null
@@ -1,6 +0,0 @@
-program test6
- use module4
- implicit none
- integer f
- f = 4
-end program test6
diff --git a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test7.f90 b/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test7.f90
deleted file mode 100644
index a3c7cf2..0000000
--- a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test7.f90
+++ /dev/null
@@ -1,12 +0,0 @@
-program test7
- use module4
- implicit none
-
-end program test7
-
-module module4
- implicit none
- contains
- subroutine help
- end subroutine
-end module
diff --git a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test8.f90 b/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test8.f90
deleted file mode 100644
index 3147a8b..0000000
--- a/org.eclipse.photran.core.vpg.tests/add-only-to-use-test-code/test8.f90
+++ /dev/null
@@ -1,11 +0,0 @@
-program test8
- use module4
- implicit none
-
- call help_common4
-end program test8
-
-subroutine help_common4
- implicit none
- real blah
-end subroutine
diff --git a/org.eclipse.photran.core.vpg.tests/build.properties b/org.eclipse.photran.core.vpg.tests/build.properties
deleted file mode 100644
index 34d2e4d..0000000
--- a/org.eclipse.photran.core.vpg.tests/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .
diff --git a/org.eclipse.photran.core.vpg.tests/check-can-add-test-code/external.f90 b/org.eclipse.photran.core.vpg.tests/check-can-add-test-code/external.f90
deleted file mode 100644
index d437ea8..0000000
--- a/org.eclipse.photran.core.vpg.tests/check-can-add-test-code/external.f90
+++ /dev/null
@@ -1,9 +0,0 @@
-subroutine declared_external_subroutine
- implicit none
- print *, "Called declared_external_subroutine"
-end subroutine declared_external_subroutine
-
-subroutine undeclared_external_subroutine
- implicit none
- print *, "Called undeclared_external_subroutine"
-end subroutine undeclared_external_subroutine
diff --git a/org.eclipse.photran.core.vpg.tests/check-can-add-test-code/main.f90 b/org.eclipse.photran.core.vpg.tests/check-can-add-test-code/main.f90
deleted file mode 100644
index b348b08..0000000
--- a/org.eclipse.photran.core.vpg.tests/check-can-add-test-code/main.f90
+++ /dev/null
@@ -1,42 +0,0 @@
-program program ! LINE 1
- use module
- implicit none
-
- external declared_external_subroutine
- integer :: unused_local_variable
- integer :: assigned_local_variable
- integer :: local_variable_accessed_from_internal_subroutine
-
- ! Don't call unused_defined_external_subroutine
- call defined_external_subroutine
- call declared_external_subroutine
- call undeclared_external_subroutine
- call internal_subroutine
- call used_module_subroutine
-
- assigned_local_variable = local_variable_accessed_from_internal_subroutine
-
- print *, assigned_local_variable
-
-contains
-
- subroutine internal_subroutine ! LINE 23
- print *, "Called internal_subroutine"
- local_variable_accessed_from_internal_subroutine = 12345
- end subroutine internal_subroutine
-
- subroutine unused_internal_subroutine
- print *, "Called unused_internal_subroutine"
- end subroutine unused_internal_subroutine
-
-end program program
-
-subroutine defined_external_subroutine
- implicit none
- print *, "Called defined_external_subroutine"
-end subroutine defined_external_subroutine
-
-subroutine unused_defined_external_subroutine
- implicit none
- print *, "Called unused_defined_external_subroutine"
-end subroutine unused_defined_external_subroutine
diff --git a/org.eclipse.photran.core.vpg.tests/check-can-add-test-code/module.f90 b/org.eclipse.photran.core.vpg.tests/check-can-add-test-code/module.f90
deleted file mode 100644
index b3f0d51..0000000
--- a/org.eclipse.photran.core.vpg.tests/check-can-add-test-code/module.f90
+++ /dev/null
@@ -1,20 +0,0 @@
-module module ! LINE 1
- implicit none
-
- private :: private_module_subroutine
-
-contains
-
- subroutine used_module_subroutine
- print *, "Called used_module_subroutine"
- end subroutine used_module_subroutine
-
- subroutine unused_module_subroutine
- print *, "Called unused_module_subroutine"
- end subroutine unused_module_subroutine
-
- subroutine private_module_subroutine
- print *, "Called private_module_subroutine"
- end subroutine private_module_subroutine
-
-end module module
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/module1.f90 b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/module1.f90
deleted file mode 100644
index f572c17..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/module1.f90
+++ /dev/null
@@ -1,7 +0,0 @@
-module module1
- implicit none
- integer :: i,j,k
-
-contains
-
-end module
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/module1.f90.result b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/module1.f90.result
deleted file mode 100644
index 593f327..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/module1.f90.result
+++ /dev/null
@@ -1,19 +0,0 @@
-module module1
- implicit none
- integer :: i,j,k
- private :: i
-
-contains
- subroutine setI(value)
- implicit none
- integer, intent(in) :: value
- i = value
- end subroutine
-
- integer function getI()
- implicit none
- getI = i
- end function
-
-
-end module
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01a-basic-integer.f90 b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01a-basic-integer.f90
deleted file mode 100644
index eb96a3c..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01a-basic-integer.f90
+++ /dev/null
@@ -1,12 +0,0 @@
-module mod
- implicit none
- integer :: variable !3,14,8
-end module
-
-program encap1
- use mod
- implicit none
- print *, variable
- variable = 3
- print *, variable
-end program encap1
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01a-basic-integer.f90.result b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01a-basic-integer.f90.result
deleted file mode 100644
index c4c19f3..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01a-basic-integer.f90.result
+++ /dev/null
@@ -1,25 +0,0 @@
-module mod
- implicit none
- integer :: variable !3,14,8
- private :: variable
-contains
- subroutine setVariable(value)
- implicit none
- integer, intent(in) :: value
- variable = value
- end subroutine
-
- integer function getVariable()
- implicit none
- getVariable = variable
- end function
-
-end module
-
-program encap1
- use mod
- implicit none
- print *,getVariable()
- call setVariable(3)
- print *,getVariable()
-end program encap1
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01b-basic-real.f90 b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01b-basic-real.f90
deleted file mode 100644
index fe13658..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01b-basic-real.f90
+++ /dev/null
@@ -1,12 +0,0 @@
-module mod
- implicit none
- real :: variable !3,11,8
-end module
-
-program encap1
- use mod
- implicit none
- print *, variable
- variable = 3.0
- print *, variable
-end program encap1
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01b-basic-real.f90.result b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01b-basic-real.f90.result
deleted file mode 100644
index 8669aa6..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01b-basic-real.f90.result
+++ /dev/null
@@ -1,25 +0,0 @@
-module mod
- implicit none
- real :: variable !3,11,8
- private :: variable
-contains
- subroutine setVariable(value)
- implicit none
- real, intent(in) :: value
- variable = value
- end subroutine
-
- real function getVariable()
- implicit none
- getVariable = variable
- end function
-
-end module
-
-program encap1
- use mod
- implicit none
- print *,getVariable()
- call setVariable(3.0)
- print *,getVariable()
-end program encap1
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01c-basic-dt.f90 b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01c-basic-dt.f90
deleted file mode 100644
index 66cd693..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01c-basic-dt.f90
+++ /dev/null
@@ -1,17 +0,0 @@
-module mod
- implicit none
-
- type point
- double precision x, y, z
- end type
-
- type(point) :: variable !8,18,8
-end module
-
-program encap1
- use mod
- implicit none
- print *, variable
- variable = point(1.0, 2.0, 3.0)
- print *, variable
-end program encap1
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01c-basic-dt.f90.result b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01c-basic-dt.f90.result
deleted file mode 100644
index 02cd4ed..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-01c-basic-dt.f90.result
+++ /dev/null
@@ -1,30 +0,0 @@
-module mod
- implicit none
-
- type point
- double precision x, y, z
- end type
-
- type(point) :: variable !8,18,8
- private :: variable
-contains
- subroutine setVariable(value)
- implicit none
- type(point), intent(in) :: value
- variable = value
- end subroutine
-
- type(point) function getVariable()
- implicit none
- getVariable = variable
- end function
-
-end module
-
-program encap1
- use mod
- implicit none
- print *,getVariable()
- call setVariable(point(1.0, 2.0, 3.0))
- print *,getVariable()
-end program encap1
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-02-contains.f90 b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-02-contains.f90
deleted file mode 100644
index cb4d664..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-02-contains.f90
+++ /dev/null
@@ -1,16 +0,0 @@
-module mod
- implicit none
- integer :: variable !3,14,8
-contains
- integer function three()
- three = 3
- end function
-end module
-
-program encap1
- use mod
- implicit none
- print *, variable
- variable = 3
- print *, variable
-end program encap1
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-02-contains.f90.result b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-02-contains.f90.result
deleted file mode 100644
index d9b0691..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-02-contains.f90.result
+++ /dev/null
@@ -1,28 +0,0 @@
-module mod
- implicit none
- integer :: variable !3,14,8
- private :: variable
-contains
- subroutine setVariable(value)
- implicit none
- integer, intent(in) :: value
- variable = value
- end subroutine
-
- integer function getVariable()
- implicit none
- getVariable = variable
- end function
-
- integer function three()
- three = 3
- end function
-end module
-
-program encap1
- use mod
- implicit none
- print *,getVariable()
- call setVariable(3)
- print *,getVariable()
-end program encap1
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-03-expr.f90 b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-03-expr.f90
deleted file mode 100644
index 72827d7..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-03-expr.f90
+++ /dev/null
@@ -1,13 +0,0 @@
-module mod
- implicit none
- integer :: variable !3,14,8
-end module
-
-program encap1
- use mod
- implicit none
- variable = 3
- ! 9 + 1
- variable = variable * variable + (variable - 2)
- print *, variable, " should be equal to ", 10
-end program encap1
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-03-expr.f90.result b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-03-expr.f90.result
deleted file mode 100644
index 2d93b21..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-03-expr.f90.result
+++ /dev/null
@@ -1,26 +0,0 @@
-module mod
- implicit none
- integer :: variable !3,14,8
- private :: variable
-contains
- subroutine setVariable(value)
- implicit none
- integer, intent(in) :: value
- variable = value
- end subroutine
-
- integer function getVariable()
- implicit none
- getVariable = variable
- end function
-
-end module
-
-program encap1
- use mod
- implicit none
- call setVariable(3)
- ! 9 + 1
- call setVariable(getVariable() *getVariable() + (getVariable() - 2))
- print *,getVariable(), " should be equal to ", 10
-end program encap1
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-04-nosetter-parameter.f90 b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-04-nosetter-parameter.f90
deleted file mode 100644
index 03304c2..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-04-nosetter-parameter.f90
+++ /dev/null
@@ -1,11 +0,0 @@
-module mod
- implicit none
- integer, parameter :: CONSTANT = 10 !3,25,8
-end module
-
-program encap1
- use mod
- implicit none
-
- print *, CONSTANT
-end program encap1
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-05a-fail-conflict.f90 b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-05a-fail-conflict.f90
deleted file mode 100644
index 1074c94..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-05a-fail-conflict.f90
+++ /dev/null
@@ -1,16 +0,0 @@
-module mod
- implicit none
- integer :: variable !3,14,8
-contains
- integer function getVariable()
- getVariable = 99999
- end function
-end module
-
-program encap1
- use mod
- implicit none
- print *, variable
- variable = 3
- print *, variable
-end program encap1
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06a-fail-array.f90 b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06a-fail-array.f90
deleted file mode 100644
index 1d2e6c2..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06a-fail-array.f90
+++ /dev/null
@@ -1,11 +0,0 @@
-module mod
- implicit none
- integer, dimension(3) :: variable !3,28,8
-end module
-
-program encap1
- use mod
- implicit none
- variable = (/ 1, 2, 3 /)
- print *, variable
-end program encap1
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06b-fail-pointer.f90 b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06b-fail-pointer.f90
deleted file mode 100644
index 24519cc..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06b-fail-pointer.f90
+++ /dev/null
@@ -1,15 +0,0 @@
-module mod
- implicit none
- integer, pointer :: ptr !3,23,3
-end module
-
-program encap1
- use mod
- implicit none
-
- integer, target :: int
- int = 3
- ptr => int
- int = 4
- print *, ptr
-end program encap1
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06c-fail-allocatable1.f90 b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06c-fail-allocatable1.f90
deleted file mode 100644
index c9f2bb1..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06c-fail-allocatable1.f90
+++ /dev/null
@@ -1,14 +0,0 @@
-module mod
- implicit none
- integer, dimension(:), allocatable :: array !3,27,5
-end module
-
-program encap1
- use mod
- implicit none
-
- allocate (array(5))
- array = (/ 10, 20, 30, 40, 50 /)
- print *, array
- deallocate (array)
-end program encap1
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06d-fail-allocatable2.f90 b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06d-fail-allocatable2.f90
deleted file mode 100644
index c55fd1e..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06d-fail-allocatable2.f90
+++ /dev/null
@@ -1,21 +0,0 @@
-module mod
- implicit none
- integer, dimension(:), allocatable :: array !3,27,5
-contains
- subroutine alloc
- allocate (array(5))
- end subroutine
- subroutine dealloc
- deallocate (array)
- end subroutine
-end module
-
-program encap1
- use mod
- implicit none
-
- call alloc
- array = (/ 10, 20, 30, 40, 50 /)
- print *, array
- call dealloc
-end program encap1
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06e-fail-target.f90 b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06e-fail-target.f90
deleted file mode 100644
index e341aba..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-encap-06e-fail-target.f90
+++ /dev/null
@@ -1,15 +0,0 @@
-module mod
- implicit none
- integer, target :: int
-end module
-
-program encap1
- use mod
- implicit none
-
- integer, pointer :: ptr !3,22,3
- int = 3
- ptr => int
- int = 4
- print *, ptr
-end program encap1
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-simple01.f90 b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-simple01.f90
deleted file mode 100644
index 79a0e59..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-simple01.f90
+++ /dev/null
@@ -1,19 +0,0 @@
-program main
- use module1
- implicit none
- integer :: blah
-
- blah = i + j + k !6,12,1
-
- i = blah + j
-
- call mult(i,j,blah)
-
-contains
- subroutine mult(a,b,c)
- integer, intent(in) :: a, b, c
- integer :: temp
- temp = a*b*c
- end subroutine
-
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-simple01.f90.result b/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-simple01.f90.result
deleted file mode 100644
index c02bf5f..0000000
--- a/org.eclipse.photran.core.vpg.tests/encapsulate-variable-test-code/test-simple01.f90.result
+++ /dev/null
@@ -1,19 +0,0 @@
-program main
- use module1
- implicit none
- integer :: blah
-
- blah =getI() + j + k !6,12,1
-
- call setI(blah + j)
-
- call mult(getI(),j,blah)
-
-contains
- subroutine mult(a,b,c)
- integer, intent(in) :: a, b, c
- integer :: temp
- temp = a*b*c
- end subroutine
-
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test01-simple.f90 b/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test01-simple.f90
deleted file mode 100644
index 5860258..0000000
--- a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test01-simple.f90
+++ /dev/null
@@ -1,5 +0,0 @@
-subroutine sub
- print *, "Hello" !<<<<<START !<<<<<END
-end subroutine
-
-program main; call sub; call flush; stop; end program
diff --git a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test01-simple.f90.result b/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test01-simple.f90.result
deleted file mode 100644
index d854233..0000000
--- a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test01-simple.f90.result
+++ /dev/null
@@ -1,11 +0,0 @@
-subroutine sub
- call new_procedure()
-end subroutine
-
-subroutine new_procedure()
- implicit none
- print *, "Hello" !<<<<<START !<<<<<END
-end subroutine
-
-
-program main; call sub; call flush; stop; end program
diff --git a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test02-locals.f90 b/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test02-locals.f90
deleted file mode 100644
index 42a27c5..0000000
--- a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test02-locals.f90
+++ /dev/null
@@ -1,19 +0,0 @@
-call sub1(); call flush; stop
-contains
-
- subroutine sub1
- integer :: a, b
- dimension a(3, 4:5)
- do b = 1, 3; a(b, :) = b*10; enddo; implicit1 = 20; implicit2 = 30
- print *, a !<<<<<START
- print *, b
- print *, implicit1
- print *, implicit2
- if (implicit2 .gt. 3) then
- print *, "OK"
- end if !<<<<<END
- end subroutine
-
- subroutine x
- end subroutine x
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test02-locals.f90.result b/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test02-locals.f90.result
deleted file mode 100644
index 74591b0..0000000
--- a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test02-locals.f90.result
+++ /dev/null
@@ -1,29 +0,0 @@
-call sub1(); call flush; stop
-contains
-
- subroutine sub1
- integer :: a, b
- dimension a(3, 4:5)
- do b = 1, 3; a(b, :) = b*10; enddo; implicit1 = 20; implicit2 = 30
- call new_procedure(a, b, implicit1, implicit2)
- end subroutine
-
- subroutine new_procedure(a, b, implicit1, implicit2)
- implicit none
- integer :: a(3, 4:5)
- integer :: b
- integer :: implicit1
- integer :: implicit2
- print *, a !<<<<<START
- print *, b
- print *, implicit1
- print *, implicit2
- if (implicit2 .gt. 3) then
- print *, "OK"
- end if !<<<<<END
- end subroutine
-
-
- subroutine x
- end subroutine x
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test03-locals2.f90 b/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test03-locals2.f90
deleted file mode 100644
index fed5543..0000000
--- a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test03-locals2.f90
+++ /dev/null
@@ -1,19 +0,0 @@
-call sub1(); call flush; stop
-contains
-
- subroutine sub1
- integer :: a, b
- dimension a(3, 4:5)
- do b = 1, 3; a(b, :) = b*10; enddo; implicit1 = 20; implicit2 = 30
- print *, a
- print *, b !<<<<<START !<<<<<END
- print *, implicit1
- print *, implicit2
- if (implicit2 .gt. 3) then
- print *, "OK"
- end if
- end subroutine
-
- subroutine x
- end subroutine x
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test03-locals2.f90.result b/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test03-locals2.f90.result
deleted file mode 100644
index 5b0f312..0000000
--- a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test03-locals2.f90.result
+++ /dev/null
@@ -1,26 +0,0 @@
-call sub1(); call flush; stop
-contains
-
- subroutine sub1
- integer :: a, b
- dimension a(3, 4:5)
- do b = 1, 3; a(b, :) = b*10; enddo; implicit1 = 20; implicit2 = 30
- print *, a
- call new_procedure(b)
- print *, implicit1
- print *, implicit2
- if (implicit2 .gt. 3) then
- print *, "OK"
- end if
- end subroutine
-
- subroutine new_procedure(b)
- implicit none
- integer :: b
- print *, b !<<<<<START !<<<<<END
- end subroutine
-
-
- subroutine x
- end subroutine x
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test04-in-loop.f90 b/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test04-in-loop.f90
deleted file mode 100644
index a4af97e..0000000
--- a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test04-in-loop.f90
+++ /dev/null
@@ -1,11 +0,0 @@
-subroutine hmmm
- do 10 i = 1, 5
- print *, i !<<<<<START
- if (i .gt. 3) then
- print *, i * 10
- end if !<<<<<END
- print *, i
-10 continue
-end subroutine
-
-program main; call hmmm; call flush; stop; end program
diff --git a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test04-in-loop.f90.result b/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test04-in-loop.f90.result
deleted file mode 100644
index f17e531..0000000
--- a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test04-in-loop.f90.result
+++ /dev/null
@@ -1,18 +0,0 @@
-subroutine hmmm
- do 10 i = 1, 5
- call new_procedure(i)
- print *, i
-10 continue
-end subroutine
-
-subroutine new_procedure(i)
- implicit none
- integer :: i
- print *, i !<<<<<START
- if (i .gt. 3) then
- print *, i * 10
- end if !<<<<<END
-end subroutine
-
-
-program main; call hmmm; call flush; stop; end program
diff --git a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test05-parameter.f90 b/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test05-parameter.f90
deleted file mode 100644
index def65e6..0000000
--- a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test05-parameter.f90
+++ /dev/null
@@ -1,8 +0,0 @@
-subroutine prob
- integer, parameter :: SIZE = 5
- real :: matrix(SIZE, SIZE)
- matrix(:, :) = 0.0 !<<<<<START !<<<<<END
- print *, matrix
-end subroutine
-
-program main; call prob; call flush; stop; end program
diff --git a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test05-parameter.f90.result b/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test05-parameter.f90.result
deleted file mode 100644
index 26bfbf6..0000000
--- a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test05-parameter.f90.result
+++ /dev/null
@@ -1,16 +0,0 @@
-subroutine prob
- integer, parameter :: SIZE = 5
- real :: matrix(SIZE, SIZE)
- call new_procedure(SIZE, matrix)
- print *, matrix
-end subroutine
-
-subroutine new_procedure(SIZE, matrix)
- implicit none
- integer :: SIZE
- real :: matrix(SIZE, SIZE)
- matrix(:, :) = 0.0 !<<<<<START !<<<<<END
-end subroutine
-
-
-program main; call prob; call flush; stop; end program
diff --git a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test06-parameter.f90 b/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test06-parameter.f90
deleted file mode 100644
index ce0d9b1..0000000
--- a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test06-parameter.f90
+++ /dev/null
@@ -1,8 +0,0 @@
-subroutine prob
- integer, parameter :: ROWS = 5, COLS = 7
- real :: matrix(ROWS, COLS)
- matrix(:, :) = 0.0 !<<<<<START !<<<<<END
- print *, matrix
-end subroutine
-
-program main; call prob; call flush; stop; end program
diff --git a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test06-parameter.f90.result b/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test06-parameter.f90.result
deleted file mode 100644
index 255bebd..0000000
--- a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test06-parameter.f90.result
+++ /dev/null
@@ -1,17 +0,0 @@
-subroutine prob
- integer, parameter :: ROWS = 5, COLS = 7
- real :: matrix(ROWS, COLS)
- call new_procedure(COLS, ROWS, matrix)
- print *, matrix
-end subroutine
-
-subroutine new_procedure(COLS, ROWS, matrix)
- implicit none
- integer :: COLS
- integer :: ROWS
- real :: matrix(ROWS, COLS)
- matrix(:, :) = 0.0 !<<<<<START !<<<<<END
-end subroutine
-
-
-program main; call prob; call flush; stop; end program
diff --git a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test07-attribs.f90 b/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test07-attribs.f90
deleted file mode 100644
index 2f547d2..0000000
--- a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test07-attribs.f90
+++ /dev/null
@@ -1,20 +0,0 @@
-subroutine prob(m, n)
- implicit none
- integer, intent(in) :: m
- integer, intent(out) :: n
- integer, save :: saved = 10
- target :: saved
- integer, pointer :: p_saved
- integer, parameter :: ROWS = 5, COLS = 7
- real :: matrix(ROWS, COLS)
- p_saved => saved
- matrix(:, :) = 0.0 !<<<<<START
- n = 5 * m
- saved = 2
- !p_saved => saved
- !p_saved = p_saved + 1
- print *, n, m, saved !<<<<<END
- print *, n, m, saved, p_saved
-end subroutine
-
-program main; call prob(3, n); call prob(3, n); print *, n; call flush; stop; end program
diff --git a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test07-attribs.f90.result b/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test07-attribs.f90.result
deleted file mode 100644
index 035c9c1..0000000
--- a/org.eclipse.photran.core.vpg.tests/extract-proc-test-code/test07-attribs.f90.result
+++ /dev/null
@@ -1,32 +0,0 @@
-subroutine prob(m, n)
- implicit none
- integer, intent(in) :: m
- integer, intent(out) :: n
- integer, save :: saved = 10
- target :: saved
- integer, pointer :: p_saved
- integer, parameter :: ROWS = 5, COLS = 7
- real :: matrix(ROWS, COLS)
- p_saved => saved
- call new_procedure(COLS, ROWS, m, matrix, n, saved)
- print *, n, m, saved, p_saved
-end subroutine
-
-subroutine new_procedure(COLS, ROWS, m, matrix, n, saved)
- implicit none
- integer :: COLS
- integer :: ROWS
- integer, intent(in) :: m
- real :: matrix(ROWS, COLS)
- integer, intent(out) :: n
- integer, target :: saved
- matrix(:, :) = 0.0 !<<<<<START
- n = 5 * m
- saved = 2
- !p_saved => saved
- !p_saved = p_saved + 1
- print *, n, m, saved !<<<<<END
-end subroutine
-
-
-program main; call prob(3, n); call prob(3, n); print *, n; call flush; stop; end program
diff --git a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-single-loop.f90 b/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-single-loop.f90
deleted file mode 100644
index f448f4d..0000000
--- a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-single-loop.f90
+++ /dev/null
@@ -1,15 +0,0 @@
-subroutine main()
- integer :: i, j
- integer :: k, z
-
- !<<<<<START
- do j = 1, 10
- print *, i
- if (i .gt. j) then
- print *, i * 10
- end if
- print *, i
- end do
- !<<<<<END
-
-end subroutine
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-single-loop.f90.result b/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-single-loop.f90.result
deleted file mode 100644
index f448f4d..0000000
--- a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-single-loop.f90.result
+++ /dev/null
@@ -1,15 +0,0 @@
-subroutine main()
- integer :: i, j
- integer :: k, z
-
- !<<<<<START
- do j = 1, 10
- print *, i
- if (i .gt. j) then
- print *, i * 10
- end if
- print *, i
- end do
- !<<<<<END
-
-end subroutine
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-triple-loop.f90 b/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-triple-loop.f90
deleted file mode 100644
index 9ab02ec..0000000
--- a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-triple-loop.f90
+++ /dev/null
@@ -1,21 +0,0 @@
-subroutine main()
- integer :: i, j
- integer :: k, z
-
-
- do j = 1, 10
- !<<<<<START
- do i = 1, 10
- do k = 2, 20
- print *, i
- if (i .gt. j) then
- print *, i * 10
- end if
- print *, i
- end do
- end do
- !<<<<<END
- end do
-
-
-end subroutine
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-triple-loop.f90.result b/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-triple-loop.f90.result
deleted file mode 100644
index 9b3327b..0000000
--- a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-triple-loop.f90.result
+++ /dev/null
@@ -1,21 +0,0 @@
-subroutine main()
- integer :: i, j
- integer :: k, z
-
-
- do j = 1, 10
- !<<<<<START
- do k = 2, 20
- do i = 1, 10
- print *, i
- if (i .gt. j) then
- print *, i * 10
- end if
- print *, i
- end do
- end do
- !<<<<<END
- end do
-
-
-end subroutine
diff --git a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-triple-loop2.f90 b/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-triple-loop2.f90
deleted file mode 100644
index 725388d..0000000
--- a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-triple-loop2.f90
+++ /dev/null
@@ -1,19 +0,0 @@
-subroutine main()
- integer :: i, j
- integer :: k, z
-
- !<<<<<START
- do i = 1, 10
- do j = 1, 15
- do k = 1,20
- print *, i
- if (i .gt. j) then
- print *, i * 10
- end if
- print *, i
- end do
- end do
- end do
- !<<<<<END
-
-end subroutine
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-triple-loop2.f90.result b/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-triple-loop2.f90.result
deleted file mode 100644
index c2e075d..0000000
--- a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test-triple-loop2.f90.result
+++ /dev/null
@@ -1,19 +0,0 @@
-subroutine main()
- integer :: i, j
- integer :: k, z
-
- !<<<<<START
- do j = 1, 15
- do i = 1, 10
- do k = 1,20
- print *, i
- if (i .gt. j) then
- print *, i * 10
- end if
- print *, i
- end do
- end do
- end do
- !<<<<<END
-
-end subroutine
diff --git a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test01-simple.f90 b/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test01-simple.f90
deleted file mode 100644
index f4875b5..0000000
--- a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test01-simple.f90
+++ /dev/null
@@ -1,12 +0,0 @@
-subroutine main()
- integer :: i, j
-
- !<<<<<START
- do j = 1, 10
- do i = 1, 10
- print *, i+j
- end do
- end do
- !<<<<<END
-
-end subroutine
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test01-simple.f90.result b/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test01-simple.f90.result
deleted file mode 100644
index 270a214..0000000
--- a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test01-simple.f90.result
+++ /dev/null
@@ -1,12 +0,0 @@
-subroutine main()
- integer :: i, j
-
- !<<<<<START
- do i = 1, 10
- do j = 1, 10
- print *, i+j
- end do
- end do
- !<<<<<END
-
-end subroutine
diff --git a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test02-simple.f90 b/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test02-simple.f90
deleted file mode 100644
index f0a42d0..0000000
--- a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test02-simple.f90
+++ /dev/null
@@ -1,17 +0,0 @@
-subroutine main()
- integer :: i, j
- integer :: k, z
-
- !<<<<<START
- do j = 1, 10
- do i = 2, 15
- print *, i
- if (i .gt. j) then
- print *, i * 10
- end if
- print *, i
- end do
- end do
- !<<<<<END
-
-end subroutine
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test02-simple.f90.result b/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test02-simple.f90.result
deleted file mode 100644
index 3dd64d3..0000000
--- a/org.eclipse.photran.core.vpg.tests/interchange-loops-test-code/test02-simple.f90.result
+++ /dev/null
@@ -1,17 +0,0 @@
-subroutine main()
- integer :: i, j
- integer :: k, z
-
- !<<<<<START
- do i = 2, 15
- do j = 1, 10
- print *, i
- if (i .gt. j) then
- print *, i * 10
- end if
- print *, i
- end do
- end do
- !<<<<<END
-
-end subroutine
diff --git a/org.eclipse.photran.core.vpg.tests/interface-test-code/definition1.f90 b/org.eclipse.photran.core.vpg.tests/interface-test-code/definition1.f90
deleted file mode 100644
index 26fbfbf..0000000
--- a/org.eclipse.photran.core.vpg.tests/interface-test-code/definition1.f90
+++ /dev/null
@@ -1,3 +0,0 @@
-integer function f() ! 1,18
- f = 1
-end function
diff --git a/org.eclipse.photran.core.vpg.tests/interface-test-code/definition2.f90 b/org.eclipse.photran.core.vpg.tests/interface-test-code/definition2.f90
deleted file mode 100644
index 4fd6bcd..0000000
--- a/org.eclipse.photran.core.vpg.tests/interface-test-code/definition2.f90
+++ /dev/null
@@ -1,3 +0,0 @@
-integer function f() ! 1,18
- f = 2
-end function
diff --git a/org.eclipse.photran.core.vpg.tests/interface-test-code/interface1.f90 b/org.eclipse.photran.core.vpg.tests/interface-test-code/interface1.f90
deleted file mode 100644
index 4eb5aeb..0000000
--- a/org.eclipse.photran.core.vpg.tests/interface-test-code/interface1.f90
+++ /dev/null
@@ -1,26 +0,0 @@
-interface
- integer function f() ! 2,20
- end function
-end interface
-
-contains
-
- subroutine s1(f)
- interface
- integer function f() ! 10,14 Subroutine parameter -- should not bind
- end function
- end interface
- end subroutine
-
- subroutine s2
- interface
- integer function f() ! 17,24
- end function
- end interface
- end subroutine
-
-end program
-
-integer function f() ! 24,18
- f = 0
-end function
diff --git a/org.eclipse.photran.core.vpg.tests/interface-test-code/interface2.f90 b/org.eclipse.photran.core.vpg.tests/interface-test-code/interface2.f90
deleted file mode 100644
index 039ce2e..0000000
--- a/org.eclipse.photran.core.vpg.tests/interface-test-code/interface2.f90
+++ /dev/null
@@ -1,6 +0,0 @@
-interface
- integer function f() ! 2,20
- end function
-end interface
-
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/bigexpression.f90 b/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/bigexpression.f90
deleted file mode 100644
index 6de8cd0..0000000
--- a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/bigexpression.f90
+++ /dev/null
@@ -1,16 +0,0 @@
-program p
- integer :: hello
- intrinsic flush
- call s
- call flush; stop
-contains
- subroutine s
- parameter (THREE = 3)
- print *, THREE + 2 + 63 * twice(4)
- end subroutine
-
- integer function twice(n)
- intent(in) :: n
- twice = 2 * n
- end function
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/bigexpression.f90.result b/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/bigexpression.f90.result
deleted file mode 100644
index ebaadb0..0000000
--- a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/bigexpression.f90.result
+++ /dev/null
@@ -1,21 +0,0 @@
-program p
- implicit none
- integer :: hello
- intrinsic flush
- call s
- call flush; stop
-contains
- subroutine s
- implicit none
- real :: three
- parameter (THREE = 3)
- print *, THREE + 2 + 63 * twice(4)
- end subroutine
-
- integer function twice(n)
- implicit none
- integer :: n
- intent(in) :: n
- twice = 2 * n
- end function
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/bug206386.f90 b/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/bug206386.f90
deleted file mode 100644
index 830a8ce..0000000
--- a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/bug206386.f90
+++ /dev/null
@@ -1,16 +0,0 @@
-program hello
- intrinsic flush
- integer :: i = 2, j = 2, mySillyVariable = 5
- print *, i, j, MYsIlLyVaRiAbLe
- CALL wORTHLESSfUNCTION(i+1,j+1,MySillyVariable)
- print *, i, j, mYsILLYvARIABLE
- call flush; stop
-
- contains
- subroutine WorthlessFunction(i,j,mySillyVariable)
- intent(IN) :: i, j
- intent(OUT) :: mySillyVariable
-
- mySillyVariable = i + j
- end subroutine WorthlessFunction
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/bug206386.f90.result b/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/bug206386.f90.result
deleted file mode 100644
index f7e4d56..0000000
--- a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/bug206386.f90.result
+++ /dev/null
@@ -1,21 +0,0 @@
-program hello
- implicit none
- intrinsic flush
- integer :: i = 2, j = 2, mySillyVariable = 5
- print *, i, j, MYsIlLyVaRiAbLe
- CALL wORTHLESSfUNCTION(i+1,j+1,MySillyVariable)
- print *, i, j, mYsILLYvARIABLE
- call flush; stop
-
- contains
- subroutine WorthlessFunction(i,j,mySillyVariable)
- implicit none
- integer :: i
- integer :: j
- integer :: mySillyVariable
- intent(IN) :: i, j
- intent(OUT) :: mySillyVariable
-
- mySillyVariable = i + j
- end subroutine WorthlessFunction
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/crazyimplicits.f90 b/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/crazyimplicits.f90
deleted file mode 100644
index 3d850c4..0000000
--- a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/crazyimplicits.f90
+++ /dev/null
@@ -1,27 +0,0 @@
-program p
- intrinsic flush
- type t
- integer n
- end type
- type(t) u
-
- a = 1
- d = 1
- u = t(5)
- call s
- print *, a, d, u
- call flush; stop
-contains
- subroutine s
- implicit integer (a-c,g), real (d-e), type(t) (f), complex (h)
-
- a = 3
- b = 3
- c = 3
- d = 3.0
- e = 3.0
- f%n = 3
- g = 3
- h = (3, 4)
- end subroutine
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/crazyimplicits.f90.result b/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/crazyimplicits.f90.result
deleted file mode 100644
index 79616f7..0000000
--- a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/crazyimplicits.f90.result
+++ /dev/null
@@ -1,36 +0,0 @@
-program p
- implicit none
- real :: a
- real :: d
- intrinsic flush
- type t
- integer n
- end type
- type(t) u
-
- a = 1
- d = 1
- u = t(5)
- call s
- print *, a, d, u
- call flush; stop
-contains
- subroutine s
- implicit none
- integer :: b
- integer :: c
- real :: e
- type(t) :: f
- integer :: g
- complex :: h
-
- a = 3
- b = 3
- c = 3
- d = 3.0
- e = 3.0
- f%n = 3
- g = 3
- h = (3, 4)
- end subroutine
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/fortran.f90 b/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/fortran.f90
deleted file mode 100644
index e8444d3..0000000
--- a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/fortran.f90
+++ /dev/null
@@ -1,34 +0,0 @@
-program functioncalling
- intrinsic flush
- print *, 'This is the Fortran program; I am going to call some functions now...'
- call sum(1.0,2.0,3.0)
- call factorial(3)
- print *, 'Done'
- call flush; stop
-
-contains
-
- subroutine sum(x,y,z)
-
-
- !x = x+y+z ! gfortran 4.4.0 on Mac OS X 10.5.7 gives "Bus error"
- print *, x
- end subroutine sum
-
- subroutine factorial(j)
- p=1
- i=1
- do i=1,j
- p=p*i
- end do
-
- print *, j, "! = ", p
- end subroutine factorial
-
- subroutine sum2(x,y)
- implicit none
- real :: p
- integer :: x, y
- p = x+y
- end subroutine sum2
-end
diff --git a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/fortran.f90.result b/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/fortran.f90.result
deleted file mode 100644
index 8f975c3..0000000
--- a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/fortran.f90.result
+++ /dev/null
@@ -1,43 +0,0 @@
-program functioncalling
- implicit none
- intrinsic flush
- print *, 'This is the Fortran program; I am going to call some functions now...'
- call sum(1.0,2.0,3.0)
- call factorial(3)
- print *, 'Done'
- call flush; stop
-
-contains
-
- subroutine sum(x,y,z)
- implicit none
- real :: x
- real :: y
- real :: z
-
-
- !x = x+y+z ! gfortran 4.4.0 on Mac OS X 10.5.7 gives "Bus error"
- print *, x
- end subroutine sum
-
- subroutine factorial(j)
- implicit none
- integer :: i
- integer :: j
- real :: p
- p=1
- i=1
- do i=1,j
- p=p*i
- end do
-
- print *, j, "! = ", p
- end subroutine factorial
-
- subroutine sum2(x,y)
- implicit none
- real :: p
- integer :: x, y
- p = x+y
- end subroutine sum2
-end
diff --git a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/implicit-subprog.f90 b/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/implicit-subprog.f90
deleted file mode 100644
index 8c03502..0000000
--- a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/implicit-subprog.f90
+++ /dev/null
@@ -1,3 +0,0 @@
-some_variable = 3.0
-call some_subprogram
-end
diff --git a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/implicit-subprog.f90.result b/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/implicit-subprog.f90.result
deleted file mode 100644
index eeebf87..0000000
--- a/org.eclipse.photran.core.vpg.tests/intro-implicit-test-code/implicit-subprog.f90.result
+++ /dev/null
@@ -1,5 +0,0 @@
-implicit none
-real :: some_variable
-some_variable = 3.0
-call some_subprogram
-end
diff --git a/org.eclipse.photran.core.vpg.tests/keyword-case-test-code/01-simple.f90 b/org.eclipse.photran.core.vpg.tests/keyword-case-test-code/01-simple.f90
deleted file mode 100644
index 8e961f4..0000000
--- a/org.eclipse.photran.core.vpg.tests/keyword-case-test-code/01-simple.f90
+++ /dev/null
@@ -1,8 +0,0 @@
-! Taken from reindenter-test-code in org.eclipse.photran.core.vpg.tests
-program program
- implicit none
-! Don't forget about comments
- ! That would be bad
-print *, "Hello" !<<<<<START !<<<<<END
- stop
-end program program
diff --git a/org.eclipse.photran.core.vpg.tests/keyword-case-test-code/01-simple.f90.result b/org.eclipse.photran.core.vpg.tests/keyword-case-test-code/01-simple.f90.result
deleted file mode 100644
index dc75f68..0000000
--- a/org.eclipse.photran.core.vpg.tests/keyword-case-test-code/01-simple.f90.result
+++ /dev/null
@@ -1,8 +0,0 @@
-! Taken from reindenter-test-code in org.eclipse.photran.core.vpg.tests
-PROGRAM program
- IMPLICIT NONE
-! Don't forget about comments
- ! That would be bad
-PRINT *, "Hello" !<<<<<START !<<<<<END
- STOP
-END PROGRAM program
diff --git a/org.eclipse.photran.core.vpg.tests/keyword-case-test-code/02-end-after.f90 b/org.eclipse.photran.core.vpg.tests/keyword-case-test-code/02-end-after.f90
deleted file mode 100644
index 5d723c0..0000000
--- a/org.eclipse.photran.core.vpg.tests/keyword-case-test-code/02-end-after.f90
+++ /dev/null
@@ -1,5 +0,0 @@
-! Taken from reindenter-test-code in org.eclipse.photran.core.vpg.tests
-program program
-implicit none
-print *, "Hello" !<<<<<START !<<<<<END
-end program program
diff --git a/org.eclipse.photran.core.vpg.tests/keyword-case-test-code/02-end-after.f90.result b/org.eclipse.photran.core.vpg.tests/keyword-case-test-code/02-end-after.f90.result
deleted file mode 100644
index 3894c1d..0000000
--- a/org.eclipse.photran.core.vpg.tests/keyword-case-test-code/02-end-after.f90.result
+++ /dev/null
@@ -1,5 +0,0 @@
-! Taken from reindenter-test-code in org.eclipse.photran.core.vpg.tests
-PROGRAM program
-IMPLICIT NONE
-PRINT *, "Hello" !<<<<<START !<<<<<END
-END PROGRAM program
diff --git a/org.eclipse.photran.core.vpg.tests/keyword-case-test-code/03-blank-after.f90 b/org.eclipse.photran.core.vpg.tests/keyword-case-test-code/03-blank-after.f90
deleted file mode 100644
index 539e912..0000000
--- a/org.eclipse.photran.core.vpg.tests/keyword-case-test-code/03-blank-after.f90
+++ /dev/null
@@ -1,4 +0,0 @@
-! Taken from reindenter-test-code in org.eclipse.photran.core.vpg.tests
-subroutine s !<<<<<START
-print *, 'Yip'
-end subroutine !<<<<<END
diff --git a/org.eclipse.photran.core.vpg.tests/keyword-case-test-code/03-blank-after.f90.result b/org.eclipse.photran.core.vpg.tests/keyword-case-test-code/03-blank-after.f90.result
deleted file mode 100644
index 6e9d000..0000000
--- a/org.eclipse.photran.core.vpg.tests/keyword-case-test-code/03-blank-after.f90.result
+++ /dev/null
@@ -1,4 +0,0 @@
-! Taken from reindenter-test-code in org.eclipse.photran.core.vpg.tests
-SUBROUTINE s !<<<<<START
-PRINT *, 'Yip'
-END SUBROUTINE !<<<<<END
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common1.f90 b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common1.f90
deleted file mode 100644
index 7ea4663..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common1.f90
+++ /dev/null
@@ -1,27 +0,0 @@
-program common1
-!use common2
-!use common3
-!use common4
-implicit none
-
-common /block/ a, b, c, /mem/ r, f, t
-integer :: a
-real :: b
-double precision :: c
-
-integer :: r, f, t
-
-a = 5
-b = 4.6
-c = 2.345
-
-call helper
-end program common1
-
-subroutine helper
-implicit none
-common /block/ e, f, g
-integer :: e
-real :: f
-double precision :: g
-end subroutine helper
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common1.f90.result b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common1.f90.result
deleted file mode 100644
index 2f12170..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common1.f90.result
+++ /dev/null
@@ -1,27 +0,0 @@
-program common1
-!use common2
-!use common3
-!use common4
-implicit none
-
-common /block/ a_common, b_common, c_common, /mem/ r, f, t
-integer :: a_common
-real :: b_common
-double precision :: c_common
-
-integer :: r, f, t
-
-a_common = 5
-b_common = 4.6
-c_common = 2.345
-
-call helper
-end program common1
-
-subroutine helper
-implicit none
-common /block/ a_common, b_common, c_common
-integer :: a_common
-real :: b_common
-double precision :: c_common
-end subroutine helper
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common2.f90 b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common2.f90
deleted file mode 100644
index dfbe524..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common2.f90
+++ /dev/null
@@ -1,11 +0,0 @@
-module common2
- implicit none
-
- contains
- subroutine help_common2
- common /block/ d, e, f
- integer :: d
- real :: e
- double precision :: f
- end subroutine help_common2
-end module common2
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common2.f90.result b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common2.f90.result
deleted file mode 100644
index 1ecb2bc..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common2.f90.result
+++ /dev/null
@@ -1,11 +0,0 @@
-module common2
- implicit none
-
- contains
- subroutine help_common2
- common /block/ a_common, b_common, c_common
- integer :: a_common
- real :: b_common
- double precision :: c_common
- end subroutine help_common2
-end module common2
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common3.f90 b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common3.f90
deleted file mode 100644
index 529bbee..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common3.f90
+++ /dev/null
@@ -1,14 +0,0 @@
-module common3
- implicit none
-
- contains
- subroutine help_common3
- common /block/ r, s, t
- integer :: r
- real :: s
- double precision :: t
-
- common /mem/ a, b, c
- integer :: a, b, c
- end subroutine help_common3
-end module common3
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common3.f90.result b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common3.f90.result
deleted file mode 100644
index 86dfe27..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common3.f90.result
+++ /dev/null
@@ -1,14 +0,0 @@
-module common3
- implicit none
-
- contains
- subroutine help_common3
- common /block/ a_common, b_common, c_common
- integer :: a_common
- real :: b_common
- double precision :: c_common
-
- common /mem/ a, b, c
- integer :: a, b, c
- end subroutine help_common3
-end module common3
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common4.f90 b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common4.f90
deleted file mode 100644
index 393355c..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common4.f90
+++ /dev/null
@@ -1,9 +0,0 @@
-module common4
- implicit none
-
- contains
- subroutine help_common4
- common /mem/ a, b, c
- integer :: a, b, c
- end subroutine help_common4
-end module common4
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common4.f90.result b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common4.f90.result
deleted file mode 100644
index 393355c..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/common4.f90.result
+++ /dev/null
@@ -1,9 +0,0 @@
-module common4
- implicit none
-
- contains
- subroutine help_common4
- common /mem/ a, b, c
- integer :: a, b, c
- end subroutine help_common4
-end module common4
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/justCommons1.f90 b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/justCommons1.f90
deleted file mode 100644
index 03c6740..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/justCommons1.f90
+++ /dev/null
@@ -1,8 +0,0 @@
-program common1
- common /block/ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, &
- a1, b1, c1, d1, e1, f1, g1, h1, i1, j1, k1, l1, m1, n1, o1, p1, q1, r1, s1, t1, u1, v1, w1, x1, y1, z1
-end program common1
-
-subroutine s
- common /block/ i, j
-end subroutine
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/justCommons1.f90.result b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/justCommons1.f90.result
deleted file mode 100644
index e25b7ba..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/justCommons1.f90.result
+++ /dev/null
@@ -1,8 +0,0 @@
-program common1
- common /block/ i_common, j_common, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, &
- a1, b1, c1, d1, e1, f1, g1, h1, i1, j1, k1, l1, m1, n1, o1, p1, q1, r1, s1, t1, u1, v1, w1, x1, y1, z1
-end program common1
-
-subroutine s
- common /block/ i_common, j_common
-end subroutine
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/justCommons2.f90 b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/justCommons2.f90
deleted file mode 100644
index 03c6740..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/justCommons2.f90
+++ /dev/null
@@ -1,8 +0,0 @@
-program common1
- common /block/ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, &
- a1, b1, c1, d1, e1, f1, g1, h1, i1, j1, k1, l1, m1, n1, o1, p1, q1, r1, s1, t1, u1, v1, w1, x1, y1, z1
-end program common1
-
-subroutine s
- common /block/ i, j
-end subroutine
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/justCommons2.f90.result b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/justCommons2.f90.result
deleted file mode 100644
index ac02c62..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/justCommons2.f90.result
+++ /dev/null
@@ -1,8 +0,0 @@
-program common1
- common /block/ a_common, b_common, c_common, d_common, e_common, f_common, g_common, h_common, i_common, j_common, k_common, l_common, m_common, n_common, o_common, p_common, q_common, r_common, s_common, t_common, u_common, v_common, w_common, x_common, y_common, z_common, &
- a1_common, b1_common, c1_common, d1_common, e1_common, f1_common, g1_common, h1_common, i1_common, j1_common, k1_common, l1_common, m1_common, n1_common, o1_common, p1_common, q1_common, r1_common, s1_common, t1_common, u1_common, v1_common, w1_common, x1_common, y1_common, z1_common
-end program common1
-
-subroutine s_common
- common /block/ a_common, b_common
-end subroutine
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/namesProv1.f90 b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/namesProv1.f90
deleted file mode 100644
index 728b496..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/namesProv1.f90
+++ /dev/null
@@ -1,7 +0,0 @@
-program namesProv
- implicit none
- common /names/ a, b, c
- integer :: a, b, c
-
- print *, "Test the test case program with given names"
-end program namesProv
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/namesProv1.f90.result b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/namesProv1.f90.result
deleted file mode 100644
index b2635be..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/namesProv1.f90.result
+++ /dev/null
@@ -1,7 +0,0 @@
-program namesProv
- implicit none
- common /names/ a_hello, b_hello, c_hello
- integer :: a_hello, b_hello, c_hello
-
- print *, "Test the test case program with given names"
-end program namesProv
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/namesProv2.f90 b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/namesProv2.f90
deleted file mode 100644
index 9fe1e93..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/namesProv2.f90
+++ /dev/null
@@ -1,9 +0,0 @@
-program namesProv2
- implicit none
- common /names/ q, w, e
- integer q, w, e
-
- q = 2
- w = 4
- e = q + w
-end program namesProv2
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/namesProv2.f90.result b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/namesProv2.f90.result
deleted file mode 100644
index 089764f..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/namesProv2.f90.result
+++ /dev/null
@@ -1,9 +0,0 @@
-program namesProv2
- implicit none
- common /names/ a_hello, b_hello, c_hello
- integer a_hello, b_hello, c_hello
-
- a_hello = 2
- b_hello = 4
- c_hello = a_hello + b_hello
-end program namesProv2
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/sameName1.f90 b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/sameName1.f90
deleted file mode 100644
index 728b496..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/sameName1.f90
+++ /dev/null
@@ -1,7 +0,0 @@
-program namesProv
- implicit none
- common /names/ a, b, c
- integer :: a, b, c
-
- print *, "Test the test case program with given names"
-end program namesProv
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/sameName1.f90.result b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/sameName1.f90.result
deleted file mode 100644
index 96f3687..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/sameName1.f90.result
+++ /dev/null
@@ -1,7 +0,0 @@
-program namesProv
- implicit none
- common /names/ a, b, this_is_renamed
- integer :: a, b, this_is_renamed
-
- print *, "Test the test case program with given names"
-end program namesProv
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/sameName2.f90 b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/sameName2.f90
deleted file mode 100644
index 9fe1e93..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/sameName2.f90
+++ /dev/null
@@ -1,9 +0,0 @@
-program namesProv2
- implicit none
- common /names/ q, w, e
- integer q, w, e
-
- q = 2
- w = 4
- e = q + w
-end program namesProv2
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/sameName2.f90.result b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/sameName2.f90.result
deleted file mode 100644
index df70d2a..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/sameName2.f90.result
+++ /dev/null
@@ -1,9 +0,0 @@
-program namesProv2
- implicit none
- common /names/ a, b, this_is_renamed
- integer a, b, this_is_renamed
-
- a = 2
- b = 4
- this_is_renamed = a + b
-end program namesProv2
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/short1.f90 b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/short1.f90
deleted file mode 100644
index 997b2f6..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/short1.f90
+++ /dev/null
@@ -1,26 +0,0 @@
-program common1
- implicit none
-
- common /block/ a, b, c
- integer :: a
- real :: b
- double precision :: c
-
- a = 5
- b = 4.6
- c = 2.345
- print *, a, b, c
-
- call helper
- print *, a, b, c
-end program common1
-
-subroutine helper
- implicit none
- common /block/ e, f
- integer :: e
- real :: f
-
- e = 50
- f = 40.6
-end subroutine helper
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/short1.f90.result b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/short1.f90.result
deleted file mode 100644
index d3eb58b..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/short1.f90.result
+++ /dev/null
@@ -1,26 +0,0 @@
-program common1
- implicit none
-
- common /block/ aaa, bbb, ccc
- integer :: aaa
- real :: bbb
- double precision :: ccc
-
- aaa = 5
- bbb = 4.6
- ccc = 2.345
- print *, aaa, bbb, ccc
-
- call helper
- print *, aaa, bbb, ccc
-end program common1
-
-subroutine helper
- implicit none
- common /block/ aaa, bbb
- integer :: aaa
- real :: bbb
-
- aaa = 50
- bbb = 40.6
-end subroutine helper
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/short2.f90 b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/short2.f90
deleted file mode 100644
index 997b2f6..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/short2.f90
+++ /dev/null
@@ -1,26 +0,0 @@
-program common1
- implicit none
-
- common /block/ a, b, c
- integer :: a
- real :: b
- double precision :: c
-
- a = 5
- b = 4.6
- c = 2.345
- print *, a, b, c
-
- call helper
- print *, a, b, c
-end program common1
-
-subroutine helper
- implicit none
- common /block/ e, f
- integer :: e
- real :: f
-
- e = 50
- f = 40.6
-end subroutine helper
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/short2.f90.result b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/short2.f90.result
deleted file mode 100644
index aec64bd..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/short2.f90.result
+++ /dev/null
@@ -1,26 +0,0 @@
-program common1
- implicit none
-
- common /block/ aaa, bbb, c
- integer :: aaa
- real :: bbb
- double precision :: c
-
- aaa = 5
- bbb = 4.6
- c = 2.345
- print *, aaa, bbb, c
-
- call helper
- print *, aaa, bbb, c
-end program common1
-
-subroutine helper
- implicit none
- common /block/ aaa, bbb
- integer :: aaa
- real :: bbb
-
- aaa = 50
- bbb = 40.6
-end subroutine helper
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/typesDiffer1.f90 b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/typesDiffer1.f90
deleted file mode 100644
index 42a081b..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/typesDiffer1.f90
+++ /dev/null
@@ -1,26 +0,0 @@
-program common1
- implicit none
-
- common /block/ a, b, c
- integer :: a
- real :: b
- double precision :: c
-
- a = 5
- b = 4.6
- c = 2.345
- print *, a, b, c
-
- call helper
- print *, a, b, c
-end program common1
-
-subroutine helper
- implicit none
- common /block/ e, f
- integer :: e
- double precision :: f ! type differs
-
- e = 50
- f = 40.6
-end subroutine helper
diff --git a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/typesDiffer2.f90 b/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/typesDiffer2.f90
deleted file mode 100644
index 3befc00..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-common-var-names-consist-test-code/typesDiffer2.f90
+++ /dev/null
@@ -1,10 +0,0 @@
-program differ
- common /block/ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, &
- a1, b1, c1, d1, e1, f1, g1, h1, i1, j1, k1, l1, m1, n1, o1, p1, q1, r1, s1, t1, u1, v1, w1, x1, y1, z1
- integer a, b
- end program differ
-
-subroutine s
- common /block/ i, j
- real i, j
-end subroutine
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/main.f90 b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/main.f90
deleted file mode 100644
index e430664..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/main.f90
+++ /dev/null
@@ -1,34 +0,0 @@
-module module1
- implicit none
- private
-contains
- ! sub1a cannot be made public w/o ONLY clause in main
- subroutine sub1a
- print *, "sub1a in module1"
- end subroutine
- ! sub1b can be made public
- subroutine sub1b
- print *, "sub1b in module1"
- end subroutine
-end module module1
-
-module module2
- implicit none
- ! integer1 and integer3 cannot be made public w/o ONLY clause
- ! integer2 and integer4 can be made public
- integer, private :: integer1, integer2
- integer :: integer3, integer4
- private :: integer4, integer3
-end module
-
-program main
- use module1
- use module2
- implicit none
- integer :: integer1, integer3
- call sub1a ! local, not import
-contains
- subroutine sub1a
- print *, "sub1a in main program"
- end subroutine
-end program main
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/priv1.f90 b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/priv1.f90
deleted file mode 100644
index e5f415a..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/priv1.f90
+++ /dev/null
@@ -1,5 +0,0 @@
-program priv1
- implicit none
- integer a, b, c
- private a, c
-end program priv1
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/priv1.f90.result b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/priv1.f90.result
deleted file mode 100644
index 575db5e..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/priv1.f90.result
+++ /dev/null
@@ -1,6 +0,0 @@
-program priv1
- implicit none
- integer a, b, c
- private c
- public a
-end program priv1
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/priv2.f90 b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/priv2.f90
deleted file mode 100644
index ece640a..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/priv2.f90
+++ /dev/null
@@ -1,7 +0,0 @@
-program priv2
- implicit none
- double precision f
- real q
- private f
- public q
-end program priv2
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/priv2.f90.result b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/priv2.f90.result
deleted file mode 100644
index 813a5ed..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/priv2.f90.result
+++ /dev/null
@@ -1,7 +0,0 @@
-program priv2
- implicit none
- double precision f
- real q
- public f
- public q
-end program priv2
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test12.f90 b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test12.f90
deleted file mode 100644
index f3aa5be..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test12.f90
+++ /dev/null
@@ -1,8 +0,0 @@
-program test
- implicit none
- private
- real, optional :: blah, hi
-contains
- subroutine helpMe
- end subroutine
-end program test
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test12.f90.result b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test12.f90.result
deleted file mode 100644
index 78f1f4e..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test12.f90.result
+++ /dev/null
@@ -1,9 +0,0 @@
-program test
- implicit none
- private
- public helpMe
- real, optional :: blah, hi
-contains
- subroutine helpMe
- end subroutine
-end program test
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test13.f90 b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test13.f90
deleted file mode 100644
index 906a55e..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test13.f90
+++ /dev/null
@@ -1,18 +0,0 @@
-program private
- implicit none
- real, private :: blah
- integer, private, optional :: priv, blah
- real :: hi
- private :: hi
-
- intrinsic hello
- external goodbye
- private hello
-contains
- subroutine hello
- private
- end subroutine
-
- function FFF()
- end function
-end program private
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test3.f90 b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test3.f90
deleted file mode 100644
index e212ab9..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test3.f90
+++ /dev/null
@@ -1,4 +0,0 @@
-program test3
- implicit none
- integer, private :: var
-end program test3
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test3.f90.result b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test3.f90.result
deleted file mode 100644
index 6b84710..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test3.f90.result
+++ /dev/null
@@ -1,4 +0,0 @@
-program test3
- implicit none
- integer,public :: var
-end program test3
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test4.f90 b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test4.f90
deleted file mode 100644
index c6c7be3..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test4.f90
+++ /dev/null
@@ -1,4 +0,0 @@
-program test4
- implicit none
- real, private :: blah, hi
-end program test4
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test4.f90.result b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test4.f90.result
deleted file mode 100644
index 9125dfa..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test4.f90.result
+++ /dev/null
@@ -1,5 +0,0 @@
-program test4
- implicit none
- real, private :: hi
- real, public :: blah
-end program test4
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test5.f90 b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test5.f90
deleted file mode 100644
index 0bc997b..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test5.f90
+++ /dev/null
@@ -1,4 +0,0 @@
-program test5
- implicit none
- integer, private, optional :: attrs
-end program test5
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test5.f90.result b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test5.f90.result
deleted file mode 100644
index d6158c2..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test5.f90.result
+++ /dev/null
@@ -1,4 +0,0 @@
-program test5
- implicit none
- integer,public, optional :: attrs
-end program test5
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test6.f90 b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test6.f90
deleted file mode 100644
index 969da0b..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test6.f90
+++ /dev/null
@@ -1,4 +0,0 @@
-program test6
- implicit none
- integer, private, optional :: attrs, blah
-end program test6
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test6.f90.result b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test6.f90.result
deleted file mode 100644
index 7476ae0..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test6.f90.result
+++ /dev/null
@@ -1,5 +0,0 @@
-program test6
- implicit none
- integer, private, optional :: attrs
- integer, public, optional :: blah
-end program test6
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test7.f90 b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test7.f90
deleted file mode 100644
index 2b041ac..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test7.f90
+++ /dev/null
@@ -1,7 +0,0 @@
-program test7
- implicit none
- private
- real :: r
- integer five
- real, optional :: blah
-end program test7
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test7.f90.result b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test7.f90.result
deleted file mode 100644
index 9a2f528..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test7.f90.result
+++ /dev/null
@@ -1,7 +0,0 @@
-program test7
- implicit none
- private
- real :: r
- integer five
- real, public, optional :: blah
-end program test7
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test7_1.f90 b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test7_1.f90
deleted file mode 100644
index 063ed82..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test7_1.f90
+++ /dev/null
@@ -1,7 +0,0 @@
-program test7_1
- implicit none
- private
- real :: r
- integer five
- real, optional :: blah, ok
-end program test7_1
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test7_1.f90.result b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test7_1.f90.result
deleted file mode 100644
index 1924a44..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/test7_1.f90.result
+++ /dev/null
@@ -1,8 +0,0 @@
-program test7_1
- implicit none
- private
- real :: r
- integer five
- real, optional :: ok
- real, public, optional :: blah
-end program test7_1
diff --git a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/testFile1.f90 b/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/testFile1.f90
deleted file mode 100644
index 59475f6..0000000
--- a/org.eclipse.photran.core.vpg.tests/make-private-entity-public-test-code/testFile1.f90
+++ /dev/null
@@ -1,13 +0,0 @@
-program testFile
- real a, b
- double precision dd
- integer g
- public a, b
- private dd
-end program testFile
-
-subroutine help
- integer q, w, e
- public q, w
- private e
-end subroutine help
diff --git a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/module.f90 b/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/module.f90
deleted file mode 100644
index 2d8c83a..0000000
--- a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/module.f90
+++ /dev/null
@@ -1,8 +0,0 @@
-module module
- implicit none
- integer :: i
-contains
- subroutine helper
- print *, "You've been helped."
- end subroutine helper
-end module module
diff --git a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test1.f90 b/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test1.f90
deleted file mode 100644
index cfe4c26..0000000
--- a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test1.f90
+++ /dev/null
@@ -1,6 +0,0 @@
-program test
- use module, only: i, helper
- implicit none
- i = 5
- call helper
-end program test
diff --git a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test1.f90.result b/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test1.f90.result
deleted file mode 100644
index cf5c012..0000000
--- a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test1.f90.result
+++ /dev/null
@@ -1,6 +0,0 @@
-program test
- use module
- implicit none
- i = 5
- call helper
-end program test
diff --git a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test2.f90 b/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test2.f90
deleted file mode 100644
index 7413856..0000000
--- a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test2.f90
+++ /dev/null
@@ -1,5 +0,0 @@
-program test2
- use module, only: i, helper
- implicit none
- call helper
-end program test2
diff --git a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test2.f90.result b/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test2.f90.result
deleted file mode 100644
index 1caf92c..0000000
--- a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test2.f90.result
+++ /dev/null
@@ -1,5 +0,0 @@
-program test2
- use module, only: helper
- implicit none
- call helper
-end program test2
diff --git a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test3.f90 b/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test3.f90
deleted file mode 100644
index 4b464e2..0000000
--- a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test3.f90
+++ /dev/null
@@ -1,4 +0,0 @@
-program test3
- use module, only: i, helper
- implicit none
-end program test3
diff --git a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test3.f90.result b/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test3.f90.result
deleted file mode 100644
index 297f3b4..0000000
--- a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test3.f90.result
+++ /dev/null
@@ -1,3 +0,0 @@
-program test3
- implicit none
-end program test3
diff --git a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test4_5.f90 b/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test4_5.f90
deleted file mode 100644
index 1396619..0000000
--- a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test4_5.f90
+++ /dev/null
@@ -1,5 +0,0 @@
-program test
- use module, only: i, helper
- use emptyModule, only: help
- implicit none
-end program test
diff --git a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test6.f90 b/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test6.f90
deleted file mode 100644
index f583515..0000000
--- a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test6.f90
+++ /dev/null
@@ -1,5 +0,0 @@
-program test
- use module, only: i, helper
- use nonexistant, only: what
- implicit none
-end program test
diff --git a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test7.f90 b/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test7.f90
deleted file mode 100644
index 8079ac5..0000000
--- a/org.eclipse.photran.core.vpg.tests/min-only-list-test-code/test7.f90
+++ /dev/null
@@ -1,5 +0,0 @@
-program test
- use module, only: i, helper
- implicit none
- integer :: q
-end program test
diff --git a/org.eclipse.photran.core.vpg.tests/move-saved-to-common-block-test-code/test1.f90 b/org.eclipse.photran.core.vpg.tests/move-saved-to-common-block-test-code/test1.f90
deleted file mode 100644
index ec19e4c..0000000
--- a/org.eclipse.photran.core.vpg.tests/move-saved-to-common-block-test-code/test1.f90
+++ /dev/null
@@ -1,96 +0,0 @@
-MODULE MySeparateFileMod
-
-END MODULE
-
-PROGRAM MyMain
-
- USE MySeparateFileMod
-
- COMMON /MyTestFun_common1/ aVar
-
- REAL :: a_xxx1
-
- REAL :: comVar
-
- REAL :: aVar
-
- COMMON /CB1/ comVar
-
- print *, test
-
- print *, internalModVar
-
- CALL MySeparateSub
-
- comVar = 5.5
-
- CONTAINS
-
- REAL FUNCTION MyTestFun()
-
- REAL :: com
-
- COMMON /MyTestFun_common2/ com
-
- REAL :: q = 3.3, w, e = 5.5
-
- REAL, DIMENSION(5) :: r, t
-
- REAL, SAVE :: u = 1.1
-
- REAL, SAVE :: o
-
- REAL, POINTER :: p
-
- POINTER o, p
-
- POINTER o, p
-
- REAL :: b, c, d
-
- REAL, POINTER :: a
-
- POINTER c, d
-
- SAVE a, r, p, b, c
-
- DIMENSION b(10)
-
- c = 1.2
-
- MyTestFun = 3.3
-
- END FUNCTION MyTestFun
-
- REAL FUNCTION MyTestFun2(aVar)
-
- REAL, DIMENSION (10:10) :: aVar
-
- CHARACTER (LEN=30) :: char
-
- REAL :: bVar(100:100)
-
- DOUBLE PRECISION :: cVar(10)
-
- REAL, PARAMETER :: b = 1.1
-
- REAL c
-
- POINTER c
-
- SAVE
-
- END FUNCTION MyTestFun2
-
-END PROGRAM MyMain
-
-SUBROUTINE MySub
-
- REAL :: test
- COMMON /CB1/ comVar
-
- test = 1.1
-
- comVar = comVar + comVar
-
-END SUBROUTINE MySub
diff --git a/org.eclipse.photran.core.vpg.tests/move-saved-to-common-block-test-code/test1.f90.result b/org.eclipse.photran.core.vpg.tests/move-saved-to-common-block-test-code/test1.f90.result
deleted file mode 100644
index 4884a49..0000000
--- a/org.eclipse.photran.core.vpg.tests/move-saved-to-common-block-test-code/test1.f90.result
+++ /dev/null
@@ -1,116 +0,0 @@
-MODULE MySeparateFileMod
-
-END MODULE
-
-PROGRAM MyMain
-
- USE MySeparateFileMod
-
- REAL, POINTER :: a_xxx2
-
- REAL, DIMENSION(10) :: b_xxx1
-
- REAL, POINTER :: c_xxx1
-
- REAL :: e_xxx1 = 5.5
-
- REAL, POINTER :: o_xxx1
-
- REAL, POINTER :: p_xxx1
-
- REAL :: q_xxx1 = 3.3
-
- REAL, DIMENSION(5) :: r_xxx1
-
- REAL :: u_xxx1 = 1.1
-
- COMMON /MyTestFun_common3/ a_xxx2,b_xxx1,c_xxx1,e_xxx1,o_xxx1,p_xxx1,q_xxx1,r_xxx1,u_xxx1
-
- COMMON /MyTestFun_common1/ aVar
-
- REAL :: a_xxx1
-
- REAL :: comVar
-
- REAL :: aVar
-
- COMMON /CB1/ comVar
-
- print *, test
-
- print *, internalModVar
-
- CALL MySeparateSub
-
- comVar = 5.5
-
- CONTAINS
-
- REAL FUNCTION MyTestFun()
-
- COMMON /MyTestFun_common3/ a_xxx2,b_xxx1,c_xxx1,e_xxx1,o_xxx1,p_xxx1,q_xxx1,r_xxx1,u_xxx1
-
- REAL :: com
-
- COMMON /MyTestFun_common2/ com
-
- REAL :: q_xxx1, w, e_xxx1
-
- REAL, DIMENSION(5) :: r_xxx1, t
-
- REAL :: u_xxx1
-
- REAL :: o_xxx1
-
- REAL, POINTER :: p_xxx1
-
- POINTER o_xxx1, p_xxx1
-
- POINTER o_xxx1, p_xxx1
-
- REAL :: b_xxx1, c_xxx1, d
-
- REAL, POINTER :: a_xxx2
-
- POINTER c_xxx1, d
-
- DIMENSION b_xxx1(10)
-
- c_xxx1 = 1.2
-
- MyTestFun = 3.3
-
- END FUNCTION MyTestFun
-
- REAL FUNCTION MyTestFun2(aVar)
-
- REAL, DIMENSION (10:10) :: aVar
-
- CHARACTER (LEN=30) :: char
-
- REAL :: bVar(100:100)
-
- DOUBLE PRECISION :: cVar(10)
-
- REAL, PARAMETER :: b = 1.1
-
- REAL c
-
- POINTER c
-
- SAVE
-
- END FUNCTION MyTestFun2
-
-END PROGRAM MyMain
-
-SUBROUTINE MySub
-
- REAL :: test
- COMMON /CB1/ comVar
-
- test = 1.1
-
- comVar = comVar + comVar
-
-END SUBROUTINE MySub
diff --git a/org.eclipse.photran.core.vpg.tests/move-saved-to-common-block-test-code/test2.f90 b/org.eclipse.photran.core.vpg.tests/move-saved-to-common-block-test-code/test2.f90
deleted file mode 100644
index ec19e4c..0000000
--- a/org.eclipse.photran.core.vpg.tests/move-saved-to-common-block-test-code/test2.f90
+++ /dev/null
@@ -1,96 +0,0 @@
-MODULE MySeparateFileMod
-
-END MODULE
-
-PROGRAM MyMain
-
- USE MySeparateFileMod
-
- COMMON /MyTestFun_common1/ aVar
-
- REAL :: a_xxx1
-
- REAL :: comVar
-
- REAL :: aVar
-
- COMMON /CB1/ comVar
-
- print *, test
-
- print *, internalModVar
-
- CALL MySeparateSub
-
- comVar = 5.5
-
- CONTAINS
-
- REAL FUNCTION MyTestFun()
-
- REAL :: com
-
- COMMON /MyTestFun_common2/ com
-
- REAL :: q = 3.3, w, e = 5.5
-
- REAL, DIMENSION(5) :: r, t
-
- REAL, SAVE :: u = 1.1
-
- REAL, SAVE :: o
-
- REAL, POINTER :: p
-
- POINTER o, p
-
- POINTER o, p
-
- REAL :: b, c, d
-
- REAL, POINTER :: a
-
- POINTER c, d
-
- SAVE a, r, p, b, c
-
- DIMENSION b(10)
-
- c = 1.2
-
- MyTestFun = 3.3
-
- END FUNCTION MyTestFun
-
- REAL FUNCTION MyTestFun2(aVar)
-
- REAL, DIMENSION (10:10) :: aVar
-
- CHARACTER (LEN=30) :: char
-
- REAL :: bVar(100:100)
-
- DOUBLE PRECISION :: cVar(10)
-
- REAL, PARAMETER :: b = 1.1
-
- REAL c
-
- POINTER c
-
- SAVE
-
- END FUNCTION MyTestFun2
-
-END PROGRAM MyMain
-
-SUBROUTINE MySub
-
- REAL :: test
- COMMON /CB1/ comVar
-
- test = 1.1
-
- comVar = comVar + comVar
-
-END SUBROUTINE MySub
diff --git a/org.eclipse.photran.core.vpg.tests/move-saved-to-common-block-test-code/test2.f90.result b/org.eclipse.photran.core.vpg.tests/move-saved-to-common-block-test-code/test2.f90.result
deleted file mode 100644
index 62d99a5..0000000
--- a/org.eclipse.photran.core.vpg.tests/move-saved-to-common-block-test-code/test2.f90.result
+++ /dev/null
@@ -1,106 +0,0 @@
-MODULE MySeparateFileMod
-
-END MODULE
-
-PROGRAM MyMain
-
- USE MySeparateFileMod
-
- REAL :: bvar_xxx1(100:100)
-
- REAL, POINTER :: c_xxx1
-
- CHARACTER (LEN=30) :: char_xxx1
-
- DOUBLE PRECISION :: cvar_xxx1(10)
-
- COMMON /MyTestFun2_common1/ bvar_xxx1,c_xxx1,char_xxx1,cvar_xxx1
-
- COMMON /MyTestFun_common1/ aVar
-
- REAL :: a_xxx1
-
- REAL :: comVar
-
- REAL :: aVar
-
- COMMON /CB1/ comVar
-
- print *, test
-
- print *, internalModVar
-
- CALL MySeparateSub
-
- comVar = 5.5
-
- CONTAINS
-
- REAL FUNCTION MyTestFun()
-
- REAL :: com
-
- COMMON /MyTestFun_common2/ com
-
- REAL :: q = 3.3, w, e = 5.5
-
- REAL, DIMENSION(5) :: r, t
-
- REAL, SAVE :: u = 1.1
-
- REAL, SAVE :: o
-
- REAL, POINTER :: p
-
- POINTER o, p
-
- POINTER o, p
-
- REAL :: b, c, d
-
- REAL, POINTER :: a
-
- POINTER c, d
-
- SAVE a, r, p, b, c
-
- DIMENSION b(10)
-
- c = 1.2
-
- MyTestFun = 3.3
-
- END FUNCTION MyTestFun
-
- REAL FUNCTION MyTestFun2(aVar)
-
- COMMON /MyTestFun2_common1/ bvar_xxx1,c_xxx1,char_xxx1,cvar_xxx1
-
- REAL, DIMENSION (10:10) :: aVar
-
- CHARACTER (LEN=30) :: char_xxx1
-
- REAL :: bvar_xxx1(100:100)
-
- DOUBLE PRECISION :: cvar_xxx1(10)
-
- REAL, PARAMETER :: b = 1.1
-
- REAL c_xxx1
-
- POINTER c_xxx1
-
- END FUNCTION MyTestFun2
-
-END PROGRAM MyMain
-
-SUBROUTINE MySub
-
- REAL :: test
- COMMON /CB1/ comVar
-
- test = 1.1
-
- comVar = comVar + comVar
-
-END SUBROUTINE MySub
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/.cvsignore b/org.eclipse.photran.core.vpg.tests/parser-test-code/.cvsignore
deleted file mode 100644
index 0dce739..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-confidential-ibeam-object_cpp
-confidential-walt-fixed
-confidential-walt-orig
-confidential-from_the_www
-confidential-walt-free
-confidential-ibeam-object_cpp_mod
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/fortran2003_tests/fortran2003-syntax.f03 b/org.eclipse.photran.core.vpg.tests/parser-test-code/fortran2003_tests/fortran2003-syntax.f03
deleted file mode 100644
index 405f051..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/fortran2003_tests/fortran2003-syntax.f03
+++ /dev/null
@@ -1,80 +0,0 @@
-! This is syntactically correct but semantically incorrect and meaningless
-program Fortran2003
- import x, y
- import :: z
-
- type, bind(c) :: class
- private
- procedure(), public :: proc_component
- contains
- procedure type_bound_proc1
- procedure, non_overridable :: type_bound_proc3
- procedure type_bound_proc4 => proc
- procedure, non_overridable :: type_bound_proc6 => proc
- end type
-
- enum, bind(c)
- enumerator apple = 3, orange, pear
- enumerator :: grapefruit
- end enum
-
- type(class), asynchronous, bind(c, name='x'), protected, value, volatile, pointer :: t1
- class(class) :: t2
- class(*) :: t3
-
- common /c1/ t1, t2
-
- asynchronous x1, x2
- asynchronous :: x3
- bind(c) x4
- bind(c,name=x) :: x5, /c1/
- protected x6
- protected :: x7, x8
-
- abstract interface
- subroutine s
- end subroutine s
- end interface
-
- procedure() p1
- procedure(integer) p2
- procedure(), pointer :: p3
- procedure(integer), save, optional :: p4, p5 => null(), p6
-
- ! EXECUTION PART
-
- associate (this => 3 + 4, that => 5)
- print *, this
- print *, that
- end associate
-
- select type (renamed => t3)
- type is (class)
- print *, "1"
- class is (class)
- print *, '2'
- class default
- print *, '3'
- if (3 .eq. 4) then
- print *, '?!'
- end if
- do i = 6,8
- print *, ":-)"
- end do
- do 51 i = 6,8
-51 print *, ":-)"
- end select
-
-! if (t1%type_bound_proc1() .eq. 3) print *, "!"
-
- call t2%type_bound_proc4
-
- open (3,action=something,asynchronous='?',decimal='?',encoding='?',iomsg=v,round='?',sign='?')
- decimal=3
- wait (3,id=n,iostat=m)
- close (unit=3,iomsg=v)
-
- use, intrinsic :: some_module
- use :: some_other_module, operator(.x.) => operator(.y.)
- use :: some_third_module, only: operator(.x.) => operator(.y.)
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/extractvariable/ExtractVariable.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/extractvariable/ExtractVariable.f90
deleted file mode 100644
index c8798f9..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/extractvariable/ExtractVariable.f90
+++ /dev/null
@@ -1,14 +0,0 @@
-program TestExtractVariable
-
-contains
-
-subroutine Sub()
- integer :: x
- x = 1
- if(x==1) then
- x=2
- end if
-
-end subroutine Sub
-
-end program TestExtractVariable
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/extractvariable/ExtractVariableAfter.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/extractvariable/ExtractVariableAfter.f90
deleted file mode 100644
index 014e055..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/extractvariable/ExtractVariableAfter.f90
+++ /dev/null
@@ -1,16 +0,0 @@
-program TestExtractVariable
-
-contains
-
-subroutine Sub()
- integer :: x
- logical :: y
- x = 1
- y = (x == 1)
- if(y) then
- x=2
- end if
-
-end subroutine Sub
-
-end program TestExtractVariable
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/MainProgramRefactoringAfter.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/MainProgramRefactoringAfter.f90
deleted file mode 100644
index 7f06a62..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/MainProgramRefactoringAfter.f90
+++ /dev/null
@@ -1,34 +0,0 @@
-program Hello
- implicit none
- integer :: i
-
- i = 3
- call Sub(i + 1)
-
- print *, "The integer is ", i
-
-contains
-
-subroutine Sub(i)
- integer :: i
- integer :: x
-
- x = i
- print *, x
-
-end subroutine Sub
-
-
-subroutine SomeSub(y,z)
- real :: y
- real :: z
- real :: x
-
- x = y + z
- y = 22
- z = y + z
- print *, x
-
-end subroutine SomeSub
-
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/MainProgramRefactoringBefore.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/MainProgramRefactoringBefore.f90
deleted file mode 100644
index 11faff4..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/MainProgramRefactoringBefore.f90
+++ /dev/null
@@ -1,30 +0,0 @@
-program Hello
-
- i = 3
- call Sub(i + 1)
-
- print *, "The integer is ", i
-
-contains
-
-subroutine Sub(i)
- integer :: x
-
- x = i
- print *, x
-
-end subroutine Sub
-
-
-subroutine SomeSub(y,z)
- real :: y
- real :: z
-
- x = y + z
- y = 22
- z = y + z
- print *, x
-
-end subroutine SomeSub
-
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/Subroutine2RefactoringsAfter.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/Subroutine2RefactoringsAfter.f90
deleted file mode 100644
index ada2665..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/Subroutine2RefactoringsAfter.f90
+++ /dev/null
@@ -1,34 +0,0 @@
-program Hello
- integer :: i = 3
-
- call Sub(i + 1)
-
- print *, "The integer is ", i
-
-contains
-
-subroutine Sub(i)
- implicit none
- integer :: i
- real :: x
-
- x = i
- print *, x
-
-end subroutine Sub
-
-
-subroutine SomeSub(y,z)
- implicit none
- real :: y
- real :: z
- real :: x
-
- x = y + z
- y = 22
- z = y + z
- print *, x
-
-end subroutine SomeSub
-
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/Subroutine2RefactoringsBefore.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/Subroutine2RefactoringsBefore.f90
deleted file mode 100644
index 41e5075..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/Subroutine2RefactoringsBefore.f90
+++ /dev/null
@@ -1,27 +0,0 @@
-program Hello
- integer :: i = 3
-
- call Sub(i + 1)
-
- print *, "The integer is ", i
-
-contains
-
-subroutine Sub(i)
-
- x = i
- print *, x
-
-end subroutine Sub
-
-
-subroutine SomeSub(y,z)
-
- x = y + z
- y = 22
- z = y + z
- print *, x
-
-end subroutine SomeSub
-
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineRefactoringAfter.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineRefactoringAfter.f90
deleted file mode 100644
index 5c1e049..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineRefactoringAfter.f90
+++ /dev/null
@@ -1,20 +0,0 @@
-program Hello
- integer :: i = 3
-
- call Sub(i + 1)
-
- print *, "The integer is ", i
-
-contains
-
-subroutine Sub(i)
- implicit none
- integer :: i
- real :: x
-
- x = i
- print *, x
-
-end subroutine Sub
-
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineRefactoringBefore.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineRefactoringBefore.f90
deleted file mode 100644
index 969f1ab..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineRefactoringBefore.f90
+++ /dev/null
@@ -1,17 +0,0 @@
-program Hello
- integer :: i = 3
-
- call Sub(i + 1)
-
- print *, "The integer is ", i
-
-contains
-
-subroutine Sub(i)
-
- x = i
- print *, x
-
-end subroutine Sub
-
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineThatHasAnImplicitStmt.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineThatHasAnImplicitStmt.f90
deleted file mode 100644
index a053466..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineThatHasAnImplicitStmt.f90
+++ /dev/null
@@ -1,20 +0,0 @@
-program Hello
- integer :: i = 3
-
- call Sub(i + 1)
-
- print *, "The integer is ", i
-
-contains
-
-subroutine Sub(i)
- implicit none
- integer :: i
- real :: x
-
- x = i
- print *, x
-
-end subroutine Sub
-
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineWithDecalaredVarsRefactoringBefore.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineWithDecalaredVarsRefactoringBefore.f90
deleted file mode 100644
index cf99a33..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineWithDecalaredVarsRefactoringBefore.f90
+++ /dev/null
@@ -1,19 +0,0 @@
-program Hello
- integer :: i = 3
-
- call Sub(i + 1)
-
- print *, "The integer is ", i
-
-contains
-
-subroutine Sub(i)
- integer :: i
- real :: x
-
- x = i
- print *, x
-
-end subroutine Sub
-
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineWithDeclaredVarsRefactoringAfter.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineWithDeclaredVarsRefactoringAfter.f90
deleted file mode 100644
index 5c1e049..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/introduceimplicitnone/SubroutineWithDeclaredVarsRefactoringAfter.f90
+++ /dev/null
@@ -1,20 +0,0 @@
-program Hello
- integer :: i = 3
-
- call Sub(i + 1)
-
- print *, "The integer is ", i
-
-contains
-
-subroutine Sub(i)
- implicit none
- integer :: i
- real :: x
-
- x = i
- print *, x
-
-end subroutine Sub
-
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test1aRefactored.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test1aRefactored.f90
deleted file mode 100644
index 47cefca..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test1aRefactored.f90
+++ /dev/null
@@ -1,8 +0,0 @@
-program Hello
- integer :: Whatever = 3
-
- Whatever = Whatever + 1
- print *, "The integer is ", Whatever
- stop
-
-end program Hello
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test1abOriginal.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test1abOriginal.f90
deleted file mode 100644
index ea5bbad..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test1abOriginal.f90
+++ /dev/null
@@ -1,8 +0,0 @@
-program Hello
- integer :: i = 3
-
- i = i + 1
- print *, "The integer is ", i
- stop
-
-end program Hello
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test1bRefactored.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test1bRefactored.f90
deleted file mode 100644
index 89cbb8f..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test1bRefactored.f90
+++ /dev/null
@@ -1,8 +0,0 @@
-program Whatever
- integer :: i = 3
-
- i = i + 1
- print *, "The integer is ", i
- stop
-
-end program Whatever
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test2Original.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test2Original.f90
deleted file mode 100644
index c58a7cd..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test2Original.f90
+++ /dev/null
@@ -1,10 +0,0 @@
-program Hello
- integer :: i = 3
- integer :: j = 4
-
- i = i + 1
- print *, "The integer is ", i
- print *, "and the other integer is ", j
- stop
-
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test3Original.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test3Original.f90
deleted file mode 100644
index 091fbdc..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test3Original.f90
+++ /dev/null
@@ -1,16 +0,0 @@
-program Hello
- integer :: i = 3
-
- call Sub(i + 1)
-
- print *, "The integer is ", i
-
-contains
-
-subroutine Sub(x)
- integer, intent(in) :: x
-
- print *, "In the subroutine, the integer is ", x
-end subroutine Sub
-
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test4Original.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test4Original.f90
deleted file mode 100644
index 5712ebd..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test4Original.f90
+++ /dev/null
@@ -1,23 +0,0 @@
-! This is a sample program
-
-program Hello
- integer :: i = 3 !!! a variable !!!
-
- call Sub(Fn(i) + 1)
-
- print *, "The integer is ", i
-
-contains ! a comment
-
-subroutine Sub(x) ! start
- integer, intent(in) :: x
-
- print *, "In the subroutine, the integer is ", x
-end subroutine Sub ! end
-
-end program
-
-integer function Fn(n) result(y)
- print *, "You sent", n, "to the function"
- y = n
-end function
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test4Refactored.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test4Refactored.f90
deleted file mode 100644
index 3f1cd57..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/refactoring_test_files/rename/Test4Refactored.f90
+++ /dev/null
@@ -1,23 +0,0 @@
-! This is a sample program
-
-program Hello
- integer :: i = 3 !!! a variable !!!
-
- call buS(nF(i) + 1)
-
- print *, "The integer is ", i
-
-contains ! a comment
-
-subroutine buS(x) ! start
- integer, intent(in) :: x
-
- print *, "In the subroutine, the integer is ", x
-end subroutine buS ! end
-
-end program
-
-integer function nF(n) result(y)
- print *, "You sent", n, "to the function"
- y = n
-end function
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/AssignResult.F90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/AssignResult.F90
deleted file mode 100644
index 1c35155..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/AssignResult.F90
+++ /dev/null
@@ -1,3 +0,0 @@
-program p
-result(1:7) = (/ 1.3, vector_x, 2.35, vector_y /)
-end program p
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/BlockData.F90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/BlockData.F90
deleted file mode 100644
index 0b6e27e..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/BlockData.F90
+++ /dev/null
@@ -1,7 +0,0 @@
-PROGRAM P
-
-END PROGRAM P
-
-BLOCK DATA INIT_BLOCK_A
-
-END BLOCK DATA
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/ConstSubstring.F90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/ConstSubstring.F90
deleted file mode 100644
index 154591c..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/ConstSubstring.F90
+++ /dev/null
@@ -1,4 +0,0 @@
-Program p
-TEMP = "ELMWOOD HIGH" (N:N+3) ! Parent is a constant.
-lll = 'ABCDF' (i:i)
-End program p
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/DblPrecDim.F90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/DblPrecDim.F90
deleted file mode 100644
index 8b29635..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/DblPrecDim.F90
+++ /dev/null
@@ -1,4 +0,0 @@
-program p
- ! DIMENSION is a keyword
- DOUBLE PRECISION , DIMENSION ( 100 ) :: A , B
-end program p
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/FormatTest.F90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/FormatTest.F90
deleted file mode 100644
index 1e3ce78..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/FormatTest.F90
+++ /dev/null
@@ -1,4 +0,0 @@
-program p
- ! Should match / ) as two tokens, not one
- 100 FORMAT (2(3EN15.4,3X)/)
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/Function.F90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/Function.F90
deleted file mode 100644
index fddbbb3..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/Function.F90
+++ /dev/null
@@ -1,11 +0,0 @@
-program p
-
-contains
-
-integer function f(x)
-end function
-
-double precision function f(x)
-end function
-
-end program p
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/ImplicitTest.F90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/ImplicitTest.F90
deleted file mode 100644
index 56e226e..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/ImplicitTest.F90
+++ /dev/null
@@ -1,12 +0,0 @@
-program lineContTest
- ! See Fortran 95 Handbook p.112
- implicit integer (a)
- implicit integer (b-c)
- implicit complex (d-e, f)
- implicit integer (g-i, k), complex(l-n)
- implicit type (mytype) (p), complex (q)
- implicit logical (kind = bit) (r)
- IMPLICIT INTEGER (S-V) ! Comment here
- IMPLICIT CHARACTER(LEN=5)(W-X)
- IMPLICIT CHARACTER(LEN=5, KIND=7)(Y), COMPLEX(Z) ! Yeah!
-end program lineContTest
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/IntentTest.F90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/IntentTest.F90
deleted file mode 100644
index 8351310..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/IntentTest.F90
+++ /dev/null
@@ -1,4 +0,0 @@
-integer function f(x, y) result(r)
- intent ( in ) x , y
- return 0
-end function
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/LineContinuationTest.F90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/LineContinuationTest.F90
deleted file mode 100644
index 2fa3bd6..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/LineContinuationTest.F90
+++ /dev/null
@@ -1,12 +0,0 @@
-program lineContTest
-
- REAL::S
- REAL::R
- R = 1.01
- S = R + & ! a comment
- ! another comment
- & R*2 & ! a comment
- ! another comment
- + R ! comment
-
-end program lineContTest
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/OperatorStarTest.F90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/OperatorStarTest.F90
deleted file mode 100644
index fad4a47..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/OperatorStarTest.F90
+++ /dev/null
@@ -1,5 +0,0 @@
-module ops
-interface operator (*)
- module procedure rat_mult
-end interface
-end module
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/ParenSlash.F90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/ParenSlash.F90
deleted file mode 100644
index 3fe1c7c..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/ParenSlash.F90
+++ /dev/null
@@ -1,7 +0,0 @@
-MODULE X
- ! (/) should be three tokens, not (/ followed by )
- INTERFACE OPERATOR (/)
- MODULE PROCEDURE BIG_DIV_INT, &
- BIG_DIV_BIG
- END INTERFACE
-END MODULE X
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug118954-todo.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug118954-todo.f90
deleted file mode 100644
index e02a9e6..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug118954-todo.f90
+++ /dev/null
@@ -1,9 +0,0 @@
-500 FORMAT (1H0, 2F10.3, E15.1, TR1, A10, 7HIN BOOK)
-1001 FORMAT (2(5E10.2, I10/), (1X, SP, I7, ss, ES10.2))
-130 FORMAT (9HMORE SNOW)
-140 FORMAT (a, 9X, 3A5, 7/ a, 10X, 3L4)
-! 17 format (7Ha"cde'g, 4 I8, '***') ! This still doesn't work (Holleriths in free form)
-
-string = ASCII_"Hello"
-
-end
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug118955.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug118955.f90
deleted file mode 100644
index 9b5ce8e..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug118955.f90
+++ /dev/null
@@ -1,10 +0,0 @@
-IDENT = RESHAPE ( (/ (1, (0, II=1,N), JJ=1,N-1), 1 /), (/ N,N /) )
-
-
- a = reshape( (/ (1.0, (real(k), i=1,N), j=1,N), 1.0 /), &
- (/ N, N /) )
-
-STOKES=DEN&
- &SITY-11.11
-
-end
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug118965.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug118965.f90
deleted file mode 100644
index 475cfa4..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug118965.f90
+++ /dev/null
@@ -1,174 +0,0 @@
-module CmatProduct_m
-
-use MatranUtil_m
-use Cmat_m
-
-implicit none
-
-
-
- real(wp), parameter :: ZERO = 0, ONE = 1
-
- interface Times
- module procedure CmTimesComplexScalarRm, CmTimesComplexScalarCm, &
- CmTimesRealScalarCm, CmTimesRealScalarRm
- end interface Times
-
-! interface operator(*)
-! module procedure RmTimesScalarRm_o, RmTimesRmScalar_o, &
-! RmTimesRmRm_o
-! end interface
-!
-! interface TimesXhy
-! module procedure RmTimesXhy
-! end interface TimesXhy
-!
-! interface operator(.xhy.)
-! module procedure RmTimes_xhy
-! end interface
-!
-! interface TimesXyh
-! module procedure RmTimesXyh
-! end interface TimesXyh
-! ! interface operator(.xyh.)
-! module procedure RmTimes_xyh
-! end interface
-!
-! interface TimesXhx
-! module procedure RmTimesXhx
-! end interface
-!
-! interface operator(.xhx.)
-! module procedure RmTimes_xhx
-! end interface
-!
-! interface TimesXxh
-! module procedure RmTimesXxh
-! end interface
-!
-! interface operator(.xxh.)
-! module procedure RmTimes_xxh
-! end interface
-
-contains
-
- subroutine CmTimesComplexScalarRm(C, s, A)
- type(Cmat), intent(inout) :: C
- complex(wp), intent(in) :: s
- type(Rmat), intent(in) :: A
-
- integer :: m, n, i, j
-
- m = A%nrow
- n = A%ncol
-
- call GuardTemp(A)
- call ReshapeAry(C, m, n)
-
- if (m==0 .or. n==0) then
- C%tag = 'yy'
- !else C%tag = 'xx'
- else
- C%tag = 'xx'
- forall (i=1:m,j=1:n)
- C%a(i,j) = s*cmplx(A%a(i,j),0)
- end forall
-
- end if
-
- call CleanTemp(A)
-
- end subroutine CmTimesComplexScalarRm
-
- subroutine CmTimesRealScalarCm(C, s, A)
- type(Cmat), intent(out) :: C
- real(wp), intent(in) :: s
- type(Cmat), intent(in) :: A
-
- integer m, n
-
- m = A%nrow
- n = A%ncol
-
- call GuardTemp(A)
- call ReshapeAry(C, m, n)
-
- if (m==0 .or. n==0) then
- C%tag = 'GE'
-
- else
-
- if (s>=0 .OR. A%tag/='HP') then
- C%tag = A%tag
- else
- C%tag = 'HE'
- end if
- C%a(1:m,1:n) = s*A%a(1:m,1:n)
-
- end if
-
- call CleanTemp(A)
-
- end subroutine CmTimesRealScalarCm
-
- subroutine CmTimesRealScalarRm(C, s, A)
- type(Cmat), intent(out) :: C
- real(wp), intent(in) :: s
- type(Rmat), intent(in) :: A
-
- integer m, n
-
- m = A%nrow
- n = A%ncol
-
- call GuardTemp(A)
- call ReshapeAry(C, m, n)
-
- if (m==0 .or. n==0) then
- C%tag = 'GE'
-
- else
-
- if (s>=0 .OR. A%tag/='HP') then
- C%tag = A%tag
- else
- C%tag = 'HE'
- end if
- C%a(1:m,1:n) = s*A%a(1:m,1:n)
-
- end if
-
- call CleanTemp(A)
-
- end subroutine CmTimesRealScalarRm
-
- subroutine CmTimesComplexScalarCm(C, s, A)
- type(Cmat), intent(out) :: C
- complex(wp), intent(in) :: s
- type(Cmat), intent(in) :: A
-
- integer m, n
-
- m = A%nrow
- n = A%ncol
-
- call GuardTemp(A)
- call ReshapeAry(C, m, n)
-
- if (m==0 .or. n==0) then
- C%tag = 'GE'
-
- else
-
- C%tag = 'HE'
- C%a(1:m,1:n) = s*A%a(1:m,1:n)
-
- end if
-
- call CleanTemp(A)
-
- end subroutine CmTimesComplexScalarCm
-
-
-
-end module CmatProduct_m
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug126383.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug126383.f90
deleted file mode 100644
index a7c6b83..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug126383.f90
+++ /dev/null
@@ -1,25 +0,0 @@
-PROGRAM TstFmts
-
-! This program contains snippets of code that may cause the photran
-! outline parser grief. The program provides no useful function.
-
- IMPLICIT NONE
-
- WRITE (6, 148)
- WRITE (6, 149)
- WRITE (6, 150)
-
-148 FORMAT (/ ' *TestForBackup* Backup due to too large a fractional ', 'change in core power.' / )
-149 FORMAT ( / ' *TestForBackup* Backup due to too large a fractional ', 'change in core power.' /)
-150 FORMAT ( / ' *TestForBackup* Backup due to too large a fractional change in core power.', // )
-
- ictl(1:6) = ( / ictl1, ictl2, 1, 0, 0, 0 / )
- ictl(1:6) = (/ ictl1, ictl2, 1, 0, 0, 0 /)
-
-
-data radii/(12*(fcasts+1))*0/
-
- data radii / (12*(fcasts+1))*0 /
-
-
-END PROGRAM
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug126546.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug126546.f90
deleted file mode 100644
index 51da770..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug126546.f90
+++ /dev/null
@@ -1,3 +0,0 @@
-density(atoms%orbs) = 1.0d0
-density(atoms%orbs(i,n)) = 1.0d0
-end
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug126547.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug126547.f90
deleted file mode 100644
index 29dfdd6..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug126547.f90
+++ /dev/null
@@ -1,9 +0,0 @@
-module blabla
-implicit none
-
-type,public :: atomic_type
- integer ::n
- integer, allocatable :: orbs(:,:)
-end type atomic_type
-
-end module blabla
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug126548.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug126548.f90
deleted file mode 100644
index ac34d1a..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug126548.f90
+++ /dev/null
@@ -1,24 +0,0 @@
-module blabla
-implicit none
-
-integer :: includx
-integer :: includex
-real :: m
-
-end module blabla
-
-module blabla
-implicit none
-
-integer :: includx
-integer :: includex
-
-contains
-
-subroutine blablas
-
- print *, includex
- write(*,*)"hello"
-end subroutine blablas
-
-end module blabla
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug138221.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug138221.f90
deleted file mode 100644
index 4ffa5ef..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug138221.f90
+++ /dev/null
@@ -1,5 +0,0 @@
- type VarcharType
- private
- character, dimension(:), allocatable :: chars
- end type
- end
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug167734.f b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug167734.f
deleted file mode 100644
index d9ca601..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug167734.f
+++ /dev/null
@@ -1,3 +0,0 @@
- program Hello
- 10 format(F5.4,3E2.1)
- end
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug193031.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug193031.f90
deleted file mode 100644
index 1c2d909..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug193031.f90
+++ /dev/null
@@ -1,32 +0,0 @@
-! This did not parse correctly if its filename extension was .F (it was interpreted as fixed rather than free format),
-! even if .F files were associated with the free-format Fortran content type
-
-!WRF:DRIVER_LAYER:MAIN
-!
-
-PROGRAM wrf
-
- USE module_wrf_top
-
-!<DESCRIPTION>
-! Main program of WRF model. Responsible for starting up the model, reading in (and
-! broadcasting for distributed memory) configuration data, defining and initializing
-! the top-level domain, either from initial or restart data, setting up time-keeping, and
-! then calling the <a href=integrate.html>integrate</a> routine to advance the domain
-! to the ending time of the simulation. After the integration is completed, the model
-! is properly shut down.
-!
-!</DESCRIPTION>
-
- IMPLICIT NONE
-
- ! Initialize WRF model.
- CALL wrf_init
-
- ! WRF model time-stepping. Calls integrate().
- CALL wrf_run
-
- ! WRF model clean-up. This calls MPI_FINALIZE() for DM parallel runs.
- CALL wrf_finalize
-
-END PROGRAM wrf
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug193196.f b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug193196.f
deleted file mode 100644
index 322af35..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug193196.f
+++ /dev/null
@@ -1,3 +0,0 @@
- FORMAT(1X,I10,1X,I10,1X,E15.7,I10,1X,I10,1X,I3/)
- 9973 FORMAT(/,1X,'!!!!!! EXECUTION WILL NOW BE TERMINATED !!!!!!',//)
- END
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug195801.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug195801.f90
deleted file mode 100644
index 2c8e869..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug195801.f90
+++ /dev/null
@@ -1,36 +0,0 @@
-PROGRAM TEST_DERIVED_TYPE
-
- IMPLICIT NONE
-
- TYPE :: TestType
- INTEGER :: a, b
- END TYPE
-
-
- TYPE(TestType) :: TestVar
-
-
- TestVar%a = 10
- TestVar%b = 20
-
- CALL DISPLAYTEST(TestVar)
-
-
-CONTAINS
-
-
-
- SUBROUTINE DISPLAYTEST(Var)
-
- IMPLICIT NONE
-
- TYPE(TestType), INTENT(IN) :: Var
-
- PRINT *, Var%a
- PRINT *, Var%b
-
- END SUBROUTINE
-
-
-
-END PROGRAM
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug212606-todo.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug212606-todo.f90
deleted file mode 100644
index 1623eba..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug212606-todo.f90
+++ /dev/null
@@ -1,20 +0,0 @@
-USE SIZES; USE GLOBAL, ONLY: C3D, COMM; USE GLOBAL_IO
-
-
-type (OutputDataDescript_t) :: descript
-CHARACTER(LEN=4) :: type1
-CHARACTER(LEN=4) :: type2
-integer :: ns,type
-
-type1 = type2
-!type = 2 ! This line still has problems
-
- READ(IHOT,REC=IHOTSTP) IMHS ; IHOTSTP = IHOTSTP + 1
- READ(IHOT,REC=IHOTSTP) TIME ; IHOTSTP = IHOTSTP + 1
- READ(IHOT,REC=IHOTSTP) ITHS ; IHOTSTP = IHOTSTP + 1
- READ(IHOT,REC=IHOTSTP) NP_G_IN ; IHOTSTP = IHOTSTP + 1
- READ(IHOT,REC=IHOTSTP) NE_G_IN ; IHOTSTP = IHOTSTP + 1
- READ(IHOT,REC=IHOTSTP) NP_A_IN ; IHOTSTP = IHOTSTP + 1
- READ(IHOT,REC=IHOTSTP) NE_A_IN ; IHOTSTP = IHOTSTP + 1
-
-end
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug212606.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug212606.f90
deleted file mode 100644
index 1822e04..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug212606.f90
+++ /dev/null
@@ -1,23 +0,0 @@
-subroutine s
-end subroutine
-
-
-program bug212606
- implicit none
-
- type OutputDataDescript_t
- integer n
- end type
-
- type (OutputDataDescript_t) :: descript
-
- CHARACTER(LEN=4) :: type1
- CHARACTER(LEN=4) :: type2
-
- integer :: ns,type
-
- type1 = type2
-
- type = 2
-
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug276186.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug276186.f90
deleted file mode 100644
index 8620ba3..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/bug276186.f90
+++ /dev/null
@@ -1,12 +0,0 @@
-type t1(l)
- integer, len :: l
-end type
-
-type t2(len)
- integer, len :: len
-end type
-
-! v-- F03 parser reports unexpected len
-integer ifdr,len_n,len_c,filtyp,fdrnam
-
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/formatbugs.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/formatbugs.f90
deleted file mode 100644
index fe4e648..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/formatbugs.f90
+++ /dev/null
@@ -1,16 +0,0 @@
-10 format(F5.4,3E2.1)
-
-148 FORMAT (/ ' *TestForBackup* Backup due to too large a fractional ', 'change in core power.' / )
-149 FORMAT ( / ' *TestForBackup* Backup due to too large a fractional ', 'change in core power.' /)
-150 FORMAT ( / ' *TestForBackup* Backup due to too large a fractional change in core power.', // )
-
- ictl(1:6) = ( / ictl1, ictl2, 1, 0, 0, 0 / )
- ictl(1:6) = (/ ictl1, ictl2, 1, 0, 0, 0 /)
-
-FORMAT(1X,I10,1X,I10,1X,E15.7,I10,1X,I10,1X,I3/)
-
-data radii/(12*(fcasts+1))*0/
-
-9973 FORMAT(/,1X,'!!!!!! EXECUTION WILL NOW BE TERMINATED !!!!!!',//)
-
- end
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/valref.f90 b/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/valref.f90
deleted file mode 100644
index d5f0553..0000000
--- a/org.eclipse.photran.core.vpg.tests/parser-test-code/reg_tests/valref.f90
+++ /dev/null
@@ -1,5 +0,0 @@
-subroutine s(%val(f), %ref(g))
-end subroutine
-
-function f(%val(f), %ref(g))
-end function
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/01-simple.f90 b/org.eclipse.photran.core.vpg.tests/reindenter-test-code/01-simple.f90
deleted file mode 100644
index 8d0d2f4..0000000
--- a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/01-simple.f90
+++ /dev/null
@@ -1,7 +0,0 @@
-program program
- implicit none
-! Don't forget about comments
- ! That would be bad
-print *, "Hello" !<<<<<START !<<<<<END
- stop
-end program program
diff --git a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/01-simple.f90.result b/org.eclipse.photran.core.vpg.tests/reindenter-test-code/01-simple.f90.result
deleted file mode 100644
index a979aeb..0000000
--- a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/01-simple.f90.result
+++ /dev/null
@@ -1,7 +0,0 @@
-program program
- implicit none
- ! Don't forget about comments
- ! That would be bad
- print *, "Hello" !<<<<<START !<<<<<END
- stop
-end program program
diff --git a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/02-end-after.f90 b/org.eclipse.photran.core.vpg.tests/reindenter-test-code/02-end-after.f90
deleted file mode 100644
index 33fb83d..0000000
--- a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/02-end-after.f90
+++ /dev/null
@@ -1,4 +0,0 @@
-program program
- implicit none
-print *, "Hello" !<<<<<START !<<<<<END
-end program program
diff --git a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/02-end-after.f90.result b/org.eclipse.photran.core.vpg.tests/reindenter-test-code/02-end-after.f90.result
deleted file mode 100644
index 3063bdd..0000000
--- a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/02-end-after.f90.result
+++ /dev/null
@@ -1,4 +0,0 @@
-program program
- implicit none
- print *, "Hello" !<<<<<START !<<<<<END
-end program program
diff --git a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/03-blank-after.f90 b/org.eclipse.photran.core.vpg.tests/reindenter-test-code/03-blank-after.f90
deleted file mode 100644
index 3550349..0000000
--- a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/03-blank-after.f90
+++ /dev/null
@@ -1,3 +0,0 @@
- subroutine s !<<<<<START
- print *, 'Yip'
- end subroutine !<<<<<END
diff --git a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/03-blank-after.f90.result b/org.eclipse.photran.core.vpg.tests/reindenter-test-code/03-blank-after.f90.result
deleted file mode 100644
index 283be06..0000000
--- a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/03-blank-after.f90.result
+++ /dev/null
@@ -1,3 +0,0 @@
-subroutine s !<<<<<START
- print *, 'Yip'
-end subroutine !<<<<<END
diff --git a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/04-guess-indent.f90 b/org.eclipse.photran.core.vpg.tests/reindenter-test-code/04-guess-indent.f90
deleted file mode 100644
index 54bdeb1..0000000
--- a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/04-guess-indent.f90
+++ /dev/null
@@ -1,3 +0,0 @@
-program program
-print *, "Hello" !<<<<<START !<<<<<END
-end program program
diff --git a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/04-guess-indent.f90.result b/org.eclipse.photran.core.vpg.tests/reindenter-test-code/04-guess-indent.f90.result
deleted file mode 100644
index 4f26825..0000000
--- a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/04-guess-indent.f90.result
+++ /dev/null
@@ -1,3 +0,0 @@
-program program
- print *, "Hello" !<<<<<START !<<<<<END
-end program program
diff --git a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/05-eachline-test.f90 b/org.eclipse.photran.core.vpg.tests/reindenter-test-code/05-eachline-test.f90
deleted file mode 100644
index 6ba1b56..0000000
--- a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/05-eachline-test.f90
+++ /dev/null
@@ -1,12 +0,0 @@
- program program !<<<<<START
- print *, "Hello"
- end program program
-
- subroutine s
- integer :: i
- do i = 3, 4
- do j = 5, 6
- print *, i + j
- end do
- end do
-end subroutine !<<<<<END
diff --git a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/05-eachline-test.f90.result b/org.eclipse.photran.core.vpg.tests/reindenter-test-code/05-eachline-test.f90.result
deleted file mode 100644
index e2f0ef3..0000000
--- a/org.eclipse.photran.core.vpg.tests/reindenter-test-code/05-eachline-test.f90.result
+++ /dev/null
@@ -1,12 +0,0 @@
-program program !<<<<<START
- print *, "Hello"
-end program program
-
-subroutine s
- integer :: i
- do i = 3, 4
- do j = 5, 6
- print *, i + j
- end do
- end do
-end subroutine !<<<<<END
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/.cvsignore b/org.eclipse.photran.core.vpg.tests/rename-test-code/.cvsignore
deleted file mode 100644
index d8200e1..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-rename?
-*.mod
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/Makefile b/org.eclipse.photran.core.vpg.tests/rename-test-code/Makefile
deleted file mode 100644
index bace899..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-FORTRAN=ifort
-FLAGS=-g -I.
-
-all:
- $(FORTRAN) $(FLAGS) -o rename1 rename1.f90
- $(FORTRAN) $(FLAGS) -o rename2 rename2.f90
-
- $(FORTRAN) $(FLAGS) -S rename3c.f90
- $(FORTRAN) $(FLAGS) -S rename3a.f90 rename3b.f90
- $(FORTRAN) $(FLAGS) -o rename3 rename3*.f90
- rm -f *.mod *.s
-
- $(FORTRAN) $(FLAGS) -o rename4 rename4.f90
- $(FORTRAN) $(FLAGS) -o rename5 rename5.f90
- $(FORTRAN) $(FLAGS) -o rename6 rename6.f90
- $(FORTRAN) $(FLAGS) -o rename7 rename7.f90
- $(FORTRAN) $(FLAGS) -o rename8 rename8.f90
- $(FORTRAN) $(FLAGS) -o rename9 rename9.f90 rename9a.f90
-
-clean:
- rm -f rename? *.mod *.s
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278103-mod.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278103-mod.f90
deleted file mode 100644
index c5e94d7..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278103-mod.f90
+++ /dev/null
@@ -1,15 +0,0 @@
-MODULE Mod1
-
- INTEGER, PARAMETER :: DIM = 5 ! 3,27
-
- CONTAINS
-
- SUBROUTINE PrintDim
-
- print *,'DIM IS:'
-
- print *, DIM ! 11,22
-
- END SUBROUTINE PrintDim
-
-END MODULE Mod1
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278103-prog.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278103-prog.f90
deleted file mode 100644
index ee1110a..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278103-prog.f90
+++ /dev/null
@@ -1,18 +0,0 @@
-PROGRAM MyProgram
-
- CALL MySub
-
- CALL MySub2
-
-END PROGRAM MyProgram
-
-
-subroutine MySub
-
- USE Mod1
-
- INTEGER, DIMENSION(DIM) :: MyArray = (/1, 10, 100, 1000, 10000/) ! 14,24
-
- print *, MyArray(DIM - 2) ! 16,22
-
-end subroutine MySub
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278103-subs.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278103-subs.f90
deleted file mode 100644
index b106a7c..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278103-subs.f90
+++ /dev/null
@@ -1,15 +0,0 @@
-subroutine MySub2
-
- USE Mod1
-
- REAL :: MyArray2(DIM) ! 5,22
-
- SAVE MyArray2
-
- MyArray2(DIM - 3) = 0.1 ! 9,14
-
- print *, MyArray2(DIM - 3) ! 11,23
-
- CALL PrintDim
-
-end subroutine MySub2
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278106-visibility.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278106-visibility.f90
deleted file mode 100644
index 9b279a8..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278106-visibility.f90
+++ /dev/null
@@ -1,40 +0,0 @@
-module m1
- integer :: m1a, m1b ! 2,14 !2,19
-end module m1
-
-module m2
- use m1
- private :: m1b ! 7,14
-end module m2
-
-subroutine s1
- use m2
- !integer :: m1a !! ILLEGAL
- integer :: m1b ! 13,14
- print *, m1a, m1b ! 14,12 14,17
-end subroutine s1
-
-module m3
- use m1
- private
-end module m3
-
-subroutine s2
- use m3
- integer :: m1a ! 24,14
- integer :: m1b ! 25,14
- print *, m1a, m1b ! 26,12 26,17
-end subroutine s2
-
-module m4
- use m1
- private
- public :: m1a ! 32,13
-end module m4
-
-subroutine s3
- use m4
- !integer :: m1a !! ILLEGAL
- integer :: m1b ! 38,14
- print *, m1a, m1b ! 39,12 39,17
-end subroutine s3
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278320-mod.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278320-mod.f90
deleted file mode 100644
index 53d807f..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278320-mod.f90
+++ /dev/null
@@ -1,4 +0,0 @@
-MODULE Mod1
- IMPLICIT NONE
- INTEGER, DIMENSION(3) :: module_array ! 3,28
-END MODULE Mod1
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278320-prog.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278320-prog.f90
deleted file mode 100644
index ef0f5c7..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278320-prog.f90
+++ /dev/null
@@ -1,7 +0,0 @@
-PROGRAM MyProgram
- USE Mod1
- IMPLICIT NONE
- INTEGER :: local_array(3)
- module_array(1) = 1 ! 5,5
- local_array(module_array(2)) = 1 ! 6,17
-END PROGRAM MyProgram
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278324.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278324.f90
deleted file mode 100644
index b136aa7..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/bug278324.f90
+++ /dev/null
@@ -1,7 +0,0 @@
-PROGRAM MyProgram
- IMPLICIT NONE
- CHARACTER(len=5) :: parmValFormat ! 3,25
-999 FORMAT('(A',I2,',')
- WRITE(parmValFormat,999) ! 5,11
- WRITE(25, parmValFormat // "' = ', I10, ' [CHANGED]')") ! 6,15
-END PROGRAM MyProgram
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename-extsub1-a.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/rename-extsub1-a.f90
deleted file mode 100644
index 3425639..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename-extsub1-a.f90
+++ /dev/null
@@ -1,25 +0,0 @@
-subroutine ext1 !1,12
-end subroutine ext1 !2,16
-
-program test
- interface
- subroutine ext1 !6,16
- end subroutine ext1 !7,20
-
- character(len=3) function ext2(i) !9,31
- real, intent(in) :: i
- end function ext2 !11,18
-
- integer function ext3() !13,22
- end function ext3 !14,18
- end interface
-
- call ext1 !17,8
- print *, ext2(1.1) !18,12
- print *, ext3() !19,12
-
-end program
-
-function ext3() result(j) !23,10
- j = 3
-end function ext3 !25,14
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename-extsub1-b.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/rename-extsub1-b.f90
deleted file mode 100644
index 4a7eb67..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename-extsub1-b.f90
+++ /dev/null
@@ -1,7 +0,0 @@
-character(len=3) function ext2(i) !1,27
- real, intent(in) :: i
- external ext3 !3,12
-
- j = ext3() !5,7
- ext2 = 'Bye' !6,3
-end function ext2 !7,14
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename-fn-result.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/rename-fn-result.f90
deleted file mode 100644
index dacc742..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename-fn-result.f90
+++ /dev/null
@@ -1,7 +0,0 @@
- print *, f() ! 1,12
-contains
- function f() ! 3,12
- integer :: f ! 4,16
- f = 3 ! 5,5
- end function f ! 6,16
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename-overloads.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/rename-overloads.f90
deleted file mode 100644
index 28f4f4c..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename-overloads.f90
+++ /dev/null
@@ -1,49 +0,0 @@
-module module
- interface module_overload !2,13
- subroutine overload_int(value) !3,16
- integer, intent(in) :: value
- end subroutine overload_int !5,20
- module procedure overload_char !6,22
- end interface module_overload !7,17
-contains
- subroutine overload_char(value) !9,14
- character, intent(in) :: value
- print *, "(Module) Character", value
- end subroutine overload_char !12,18
-end module module
-
-subroutine overload_int(value) !15,12
- integer, intent(in) :: value
- print *, "Integer", value
-end subroutine overload_int !18,16
-
-program test
- interface overload
- subroutine overload_int(value) !22,16
- integer, intent(in) :: value
- end subroutine overload_int !24,20
-
- subroutine overload_char(value) !26,16
- character, intent(in) :: value
- end subroutine overload_char !28,20
- end interface overload !29,17
-
- call overload(1) !31,8
- call overload('c') !32,8
- call overload_int(1) !33,8
- call overload_char('c') !34,8
- call call_module
-contains
- subroutine call_module
- use module
- call module_overload(2) !39,10
- call module_overload('d') !40,10
- call overload_int(2) !41,10
- call overload_char('d') !42,10
- end subroutine call_module
-end program
-
-subroutine overload_char(value) !46,12
- character, intent(in) :: value
- print *, "Character", value
-end subroutine overload_char !49,16
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename1.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/rename1.f90
deleted file mode 100644
index 711180a..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename1.f90
+++ /dev/null
@@ -1,33 +0,0 @@
-program Main
- integer, parameter :: two = 2
- integer, parameter :: three = selected_real_kind(3)
- integer :: a, b = three
- integer(three) :: not_shadowed = 98765
- real(kind=three) :: c
- complex :: shadow_this_1 = (three, two), shadow_this_2 = (2, three)
- implicit = 13579
- print *, a, b, c, two, three, not_shadowed, shadow_this_1, shadow_this_2, implicit
-
- call int
- call ext
- stop
-
-contains
-
- subroutine int
- complex :: shadow_this_1
- integer :: shadow_this_2
-
- print *, not_shadowed, shadow_this_1, shadow_this_2, implicit
- call ext
- end subroutine int
- subroutine sub
- end subroutine sub
-end program Main
-subroutine ext
- print *, two
-contains
- subroutine int
- print *, two
- end subroutine int
-end subroutine ext
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename2.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/rename2.f90
deleted file mode 100644
index 7fb2509..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename2.f90
+++ /dev/null
@@ -1,29 +0,0 @@
-! Header comment
-program Main ! After program name
- implicit none
- integer :: one ! After declaration
- integer, parameter :: two = 2 ! After declaration assignment
- integer :: three
-
- ! Between specifications
-
- integer(two) :: four
-
- print *, one !
- print *, two, &
- three
- print *, four &
- , one
- print *, two, & !
- three !
- print *, four & !
- , one !
-
- print *, "This is a really&
- & long string"
-
- stop
-! end
-end program Main !End
-! end of file
-! end of file
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename3.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/rename3.f90
deleted file mode 100644
index ec7214d..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename3.f90
+++ /dev/null
@@ -1,18 +0,0 @@
-program MyProgram ! 1,9
- use module_a, a_renamed3 => a_sub3of3 ! 2,7 2,17 2,31
- use module_b, only: b_sub2of3, b_renamed3 => b_sub3of3 ! 3,7 3,23 3,34 3,48
-
- implicit none
-
- call a_sub1of3 ! 7,8
- call a_sub2of3 ! 8,8
- call a_renamed3 ! 9,8
- call b_sub2of3 ! 10,8
- call b_renamed3 ! 11,8
- call contained ! 12,8
- call external ! 13,8
-contains
- subroutine contained; end subroutine ! 15,14
-end
-
-subroutine external; end subroutine ! 18,12
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename3a.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/rename3a.f90
deleted file mode 100644
index fe48524..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename3a.f90
+++ /dev/null
@@ -1,6 +0,0 @@
-module module_a ! 1,8
-contains
- subroutine a_sub1of3; end subroutine ! 3,16
- subroutine a_sub2of3; end subroutine ! 4,16
- subroutine a_sub3of3; end subroutine ! 5,16
-end module
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename3b.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/rename3b.f90
deleted file mode 100644
index eac8923..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename3b.f90
+++ /dev/null
@@ -1,9 +0,0 @@
-module module_b ! 1,8
- use module_c ! 2,9
-contains
- subroutine b_sub1of3; end subroutine ! 4,16
- subroutine b_sub2of3; end subroutine ! 5,16
- subroutine b_sub3of3; ! 6,16
- call c_sub ! 7,12
- end subroutine
-end module
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename3c.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/rename3c.f90
deleted file mode 100644
index 7c06b6d..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename3c.f90
+++ /dev/null
@@ -1,4 +0,0 @@
-module module_c ! 1,8
-contains
- subroutine c_sub; end subroutine ! 3,16
-end module
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename4.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/rename4.f90
deleted file mode 100644
index b678a6e..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename4.f90
+++ /dev/null
@@ -1,5 +0,0 @@
-program MyProgram ! 1,9
- include "rename4a.fh" ! Some include
- print *, hello ! 3,12
- include "rename4b.fh"
-end
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename4a.fh b/org.eclipse.photran.core.vpg.tests/rename-test-code/rename4a.fh
deleted file mode 100644
index 9900890..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename4a.fh
+++ /dev/null
@@ -1,2 +0,0 @@
-integer :: hello ! 1,12
-integer :: goodbye ! 2, 12
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename4b.fh b/org.eclipse.photran.core.vpg.tests/rename-test-code/rename4b.fh
deleted file mode 100644
index f32f18b..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename4b.fh
+++ /dev/null
@@ -1 +0,0 @@
-print *, hello ! 1,10
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename5.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/rename5.f90
deleted file mode 100644
index ce018ef..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename5.f90
+++ /dev/null
@@ -1,47 +0,0 @@
-! 14 45 52
-pure integer(selected_int_kind(3)) function thrice(n)
- intent(in) :: n ! 17 n should be implicitly declared, NOT resolve to the outer n
- thrice=-999 ! 3
-end function thrice ! 14
-
- type type ! 8
- integer :: a ! 16
- end type type ! 12
-
-! 3 10 17
-! thrice(n) = 3*n ! Statement function, shadows outer function
-! 3
- n = 1 ! Different n than statement function parameter
-
- ! 12 23 30 34 38 44
- print *, thrice(6), thrice(n), n, f(1), f(3)
- ! Expect 18.0 3.0 1.0 1.0 3.0
- stop
-
-contains
- ! 30 33
- recursive integer function f (a)
- ! 16
- integer :: a ! Different a than derived type component
- ! 10 19
- type(type) :: x
- ! 10 28 33
- type(type), pointer :: p => null()
-
- target :: x ! 15
- intent(in) :: a ! 19
-
-! 5 7 11
- x%a = a ! Assign local a to component
-! 5 9 14
- x = type(a) ! Structure ctor assigning local a to component a
-! 5 10
- p => x
- !p => null() does not parse
-
-! 5
- f = 1
-! 9 16 20 2729
- if (a > 1) f = thrice(f(f-1))
- end function f ! 16
-end
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename6.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/rename6.f90
deleted file mode 100644
index 5784c10..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename6.f90
+++ /dev/null
@@ -1,29 +0,0 @@
-implicit none; type outer ! outer 21
- integer :: i
- type(outer), pointer :: inner ! outer 8
-end type
-integer :: j ! j 12
-integer, parameter :: i = 2 ! i 23
-character(len=i), save :: hi = 'hi', bye = 'bye' ! i 15 hi 27 bye 38
-!type(outer) :: type
-type(outer) :: ty ! outer 6 ty 16
-integer :: array(5) ! array 12
-
-!type%i = type%inner%i - i ! i 25
-
-!2 9 22
- ty%i = ty%inner%i - i
-
-! 11 16 20 25 30 35 40
-namelist /nl1/ hi, bye /nl2/ hi, /nl3/ bye
-read (5, nml=nl1) ! nl1 14
-
-! 6 9 13 30
-data hi,bye,ty%i /'Hi','Bye',i/
-! 6 14
-data array/5*i/
-! 6 12
-data array(i) /3/
-! 7 13 17 23 29
-data (array(j), j=1,5,i) /3*i/
-end
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename7.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/rename7.f90
deleted file mode 100644
index e8e0b9d..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename7.f90
+++ /dev/null
@@ -1,15 +0,0 @@
-! 12
-block data bdn
-
-implicit none
-! 12 16 20 24 28
-integer :: v1, v2, v3, v4, v5
-! 9 18 22 28 32 41 45
-common /common1/ v1, v2/zz/v3, v4, v5 ! Replacing /zz/ with // causes parse error Adding /common1/ at 31 causes semantic error
-! 7
-save /common1/
-! 6 10
-data v1, v2 /3, 4/
-! 16
-end block data bdn
-end
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename8.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/rename8.f90
deleted file mode 100644
index c07b925..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename8.f90
+++ /dev/null
@@ -1,30 +0,0 @@
-end
-! f : (((double -> char(3)), double) -> char(3)) -> char(*)
-! 1012 22
-function f(g) result(q)
- implicit none
- ! 23
- character(len=*) :: q
- interface
- ! g : ((double -> char(3)), double) -> char(3)
- ! 3133 36
- character(len=3) function g(h, x)
- interface
- ! h : double -> char(3)
- ! 3537
- character(len=3) function h(x)
- ! 43
- double precision, intent(in) :: x
- end function h !<<< 22
- end interface
- ! 39
- double precision, intent(in) :: x
- ! 18
- end function g
- end interface
-! 3
- q = 'This is terrible'
-! 14
-end function f
-! 18 23 43
-integer function g(); g = 3; end function g
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename9.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/rename9.f90
deleted file mode 100644
index 9b5a100..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename9.f90
+++ /dev/null
@@ -1,40 +0,0 @@
-module M1
- implicit none
- integer :: i1 !3,14
- integer, private :: j1 !4,23
- private :: k1 !5,14
- interface
- character(len=3) function k1(z) !7,31
- real, intent(in) :: z
- end function
- end interface
-contains
- integer function f1(); f1 = 1; end function !12,20 12,26
-end module M1
-
-module M2
- implicit none
- integer :: i2 !17,14
- integer, public :: j2
- private
- public :: k2 !20,13
- interface
- character(len=3) function k2(i2) !22,31
- doubleprecision, intent(in) :: i2
- end function
- end interface
-contains
- integer function f2(); f2 = 1; end function !27,20 27,26
-end module M2
-
-program p
- use M1
- use M2
-!implicit none ! Uncomment to see compile errors (to determine which are implicits)
- ! j1 k1 z implicit
- ! 12 16 20 24 30
- print *, i1, j1, k1, f1(), z
- ! i2 f2 implicit
- ! 12 16 20 29
- print *, i2, j2, k2(3d0), f2
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename9a.f90 b/org.eclipse.photran.core.vpg.tests/rename-test-code/rename9a.f90
deleted file mode 100644
index a09dbc9..0000000
--- a/org.eclipse.photran.core.vpg.tests/rename-test-code/rename9a.f90
+++ /dev/null
@@ -1,4 +0,0 @@
-character(len=3) function k2(i)
- real, intent(in) :: i
- k2 = 'Bye'
-end function
diff --git a/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-1-initial.f90 b/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-1-initial.f90
deleted file mode 100644
index 28819a2..0000000
--- a/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-1-initial.f90
+++ /dev/null
@@ -1,21 +0,0 @@
-! This is a Fortran file
-! for testing
-program proggie ! Yes, a program
- integer, parameter :: TWENTY = 20 ! a constant
- print *, "Kon'nichiwa, Photran refactoring engine!"
-contains
- subroutine q
- end
-
- ! Subroutine comment
- subroutine s(x) ! sub sub
- real, intent(in) :: x ! This is x
- print *, x ! Printing
- end subroutine
-
- subroutine r
- end
-end
-
-subroutine t
-end subroutine ! EOF comment
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-2-proggie-shorter.f90 b/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-2-proggie-shorter.f90
deleted file mode 100644
index 1153ad5..0000000
--- a/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-2-proggie-shorter.f90
+++ /dev/null
@@ -1,21 +0,0 @@
-! This is a Fortran file
-! for testing
-program p ! Yes, a program
- integer, parameter :: TWENTY = 20 ! a constant
- print *, "Kon'nichiwa, Photran refactoring engine!"
-contains
- subroutine q
- end
-
- ! Subroutine comment
- subroutine s(x) ! sub sub
- real, intent(in) :: x ! This is x
- print *, x ! Printing
- end subroutine
-
- subroutine r
- end
-end
-
-subroutine t
-end subroutine ! EOF comment
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-3-proggie-longer.f90 b/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-3-proggie-longer.f90
deleted file mode 100644
index 37a8bf0..0000000
--- a/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-3-proggie-longer.f90
+++ /dev/null
@@ -1,21 +0,0 @@
-! This is a Fortran file
-! for testing
-program proggiedoggie ! Yes, a program
- integer, parameter :: TWENTY = 20 ! a constant
- print *, "Kon'nichiwa, Photran refactoring engine!"
-contains
- subroutine q
- end
-
- ! Subroutine comment
- subroutine s(x) ! sub sub
- real, intent(in) :: x ! This is x
- print *, x ! Printing
- end subroutine
-
- subroutine r
- end
-end
-
-subroutine t
-end subroutine ! EOF comment
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-4-q-cut.f90 b/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-4-q-cut.f90
deleted file mode 100644
index 80be11c..0000000
--- a/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-4-q-cut.f90
+++ /dev/null
@@ -1,19 +0,0 @@
-! This is a Fortran file
-! for testing
-program proggie ! Yes, a program
- integer, parameter :: TWENTY = 20 ! a constant
- print *, "Kon'nichiwa, Photran refactoring engine!"
-contains
-
- ! Subroutine comment
- subroutine s(x) ! sub sub
- real, intent(in) :: x ! This is x
- print *, x ! Printing
- end subroutine
-
- subroutine r
- end
-end
-
-subroutine t
-end subroutine ! EOF comment
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-5-q-pasted.f90 b/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-5-q-pasted.f90
deleted file mode 100644
index 7b5c1a2..0000000
--- a/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-5-q-pasted.f90
+++ /dev/null
@@ -1,21 +0,0 @@
-! This is a Fortran file
-! for testing
-program proggie ! Yes, a program
- integer, parameter :: TWENTY = 20 ! a constant
- print *, "Kon'nichiwa, Photran refactoring engine!"
-contains
-
- ! Subroutine comment
- subroutine s(x) ! sub sub
- real, intent(in) :: x ! This is x
- print *, x ! Printing
- end subroutine
-
- subroutine r
- end
-end
- subroutine q
- end
-
-subroutine t
-end subroutine ! EOF comment
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-6-q-pasted-at-bottom.f90 b/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-6-q-pasted-at-bottom.f90
deleted file mode 100644
index 19d94da..0000000
--- a/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-6-q-pasted-at-bottom.f90
+++ /dev/null
@@ -1,21 +0,0 @@
-! This is a Fortran file
-! for testing
-program proggie ! Yes, a program
- integer, parameter :: TWENTY = 20 ! a constant
- print *, "Kon'nichiwa, Photran refactoring engine!"
-contains
-
- ! Subroutine comment
- subroutine s(x) ! sub sub
- real, intent(in) :: x ! This is x
- print *, x ! Printing
- end subroutine
-
- subroutine r
- end
-end
-
-subroutine t
-end subroutine ! EOF comment
- subroutine q
- end
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-7-q-pasted-formatted.f90 b/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-7-q-pasted-formatted.f90
deleted file mode 100644
index df092d0..0000000
--- a/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-7-q-pasted-formatted.f90
+++ /dev/null
@@ -1,21 +0,0 @@
-! This is a Fortran file
-! for testing
-program proggie ! Yes, a program
- integer, parameter :: TWENTY = 20 ! a constant
- print *, "Kon'nichiwa, Photran refactoring engine!"
-contains
-
- ! Subroutine comment
- subroutine s(x) ! sub sub
- real, intent(in) :: x ! This is x
- print *, x ! Printing
- end subroutine
-
- subroutine r
- end
-end
-subroutine q
-end
-
-subroutine t
-end subroutine ! EOF comment
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-8-q-pasted-at-bottom-formatted.f90 b/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-8-q-pasted-at-bottom-formatted.f90
deleted file mode 100644
index e48bad7..0000000
--- a/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-8-q-pasted-at-bottom-formatted.f90
+++ /dev/null
@@ -1,21 +0,0 @@
-! This is a Fortran file
-! for testing
-program proggie ! Yes, a program
- integer, parameter :: TWENTY = 20 ! a constant
- print *, "Kon'nichiwa, Photran refactoring engine!"
-contains
-
- ! Subroutine comment
- subroutine s(x) ! sub sub
- real, intent(in) :: x ! This is x
- print *, x ! Printing
- end subroutine
-
- subroutine r
- end
-end
-
-subroutine t
-end subroutine ! EOF comment
-subroutine q
-end
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-9-t-above-q.f90 b/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-9-t-above-q.f90
deleted file mode 100644
index f1031ae..0000000
--- a/org.eclipse.photran.core.vpg.tests/source-editor-test-code/hello-9-t-above-q.f90
+++ /dev/null
@@ -1,21 +0,0 @@
-! This is a Fortran file
-! for testing
-program proggie ! Yes, a program
- integer, parameter :: TWENTY = 20 ! a constant
- print *, "Kon'nichiwa, Photran refactoring engine!"
-contains
-
- subroutine t
- end subroutine ! EOF comment
- subroutine q
- end
-
- ! Subroutine comment
- subroutine s(x) ! sub sub
- real, intent(in) :: x ! This is x
- print *, x ! Printing
- end subroutine
-
- subroutine r
- end
-end
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/ArrayReferenceTest.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/ArrayReferenceTest.java
deleted file mode 100644
index e8bd424..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/ArrayReferenceTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.analysis.dependence;
-
-import org.eclipse.photran.internal.core.analysis.dependence.VariableReference;
-
-/**
- *
- * @author Jeff Overbey
- */
-public class ArrayReferenceTest extends BaseTestCase
-{
- public void test1DLHS() throws Exception
- {
- assertEquals("a(2*i+3)", VariableReference.fromLHS(assignment("a(2* i +3) = 0")).toString());
- assertEquals("a(2*i+3)", VariableReference.fromLHS(assignment("A(2* i +3) = 0")).toString());
- assertEquals("a(1*i+2)", VariableReference.fromLHS(assignment("a(i + 2) = 0")).toString());
- assertEquals("a(3)", VariableReference.fromLHS(assignment("a(3) = 0")).toString());
- assertEquals("a(1*i+0)", VariableReference.fromLHS(assignment("a(i) = 0")).toString());
- assertEquals("a(2*i+0)", VariableReference.fromLHS(assignment("a(2* i) = 0")).toString());
- assertEquals("a", VariableReference.fromLHS(assignment("a(s(n/3)) = 0")).toString());
- assertEquals("a(2*i+5)", VariableReference.fromLHS(assignment("a(5+2*i) = 0")).toString());
- assertEquals("a(1*i+5)", VariableReference.fromLHS(assignment("a(5+i) = 0")).toString());
- assertEquals("a(-1*i+5)", VariableReference.fromLHS(assignment("a(-i+5) = 0")).toString());
- assertEquals("a(-1*i+0)", VariableReference.fromLHS(assignment("a(-i) = 0")).toString());
- //assertEquals("a(-1*i+5)", VariableReference.fromLHS(assignment("a(5+-i) = 0")).toString());
- }
-
- public void test3DLHS() throws Exception
- {
- assertEquals("a(2*i+0, 6, 1*j+10)", VariableReference.fromLHS(assignment("a ( 2*i, 6 , j + 10 ) = 0")).toString());
- }
-
- public void testRHS() throws Exception
- {
- assertEquals("[b(3), c(6*i+0), i, d, a]",
- VariableReference.fromRHS(assignment("a ( 2*i, 6 , j + 10 ) = b(3) + c(6*i) + 3 * d * a")).toString());
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/BaseTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/BaseTestCase.java
deleted file mode 100644
index 191d6f9..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/BaseTestCase.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.analysis.dependence;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import junit.framework.TestCase;
-
-import org.eclipse.photran.internal.core.SyntaxException;
-import org.eclipse.photran.internal.core.analysis.dependence.LoopDependences;
-import org.eclipse.photran.internal.core.analysis.dependence.GCDTest;
-import org.eclipse.photran.internal.core.analysis.loops.ASTProperLoopConstructNode;
-import org.eclipse.photran.internal.core.analysis.loops.LoopReplacer;
-import org.eclipse.photran.internal.core.lexer.LexerException;
-import org.eclipse.photran.internal.core.lexer.LexerFactory;
-import org.eclipse.photran.internal.core.lexer.SourceForm;
-import org.eclipse.photran.internal.core.parser.ASTAssignmentStmtNode;
-import org.eclipse.photran.internal.core.parser.ASTExecutableProgramNode;
-import org.eclipse.photran.internal.core.parser.ASTMainProgramNode;
-import org.eclipse.photran.internal.core.parser.IBodyConstruct;
-import org.eclipse.photran.internal.core.parser.Parser;
-
-/**
- * Base class for unit tests for dependence testing classes.
- *
- * @author Jeff Overbey
- */
-abstract class BaseTestCase extends TestCase
-{
- protected LoopDependences dependences(String loop) throws IOException, LexerException, SyntaxException
- {
- return LoopDependences.computeFor(loop(loop), new GCDTest());
- }
-
- protected ASTProperLoopConstructNode loop(String stmt) throws IOException, LexerException, SyntaxException
- {
- ASTProperLoopConstructNode result = parseStmt(stmt);
- assertNotNull(result);
- return result;
- }
-
- protected ASTAssignmentStmtNode assignment(String stmt) throws IOException, LexerException, SyntaxException
- {
- ASTAssignmentStmtNode result = parseStmt(stmt);
- assertNotNull(result);
- return result;
- }
-
- @SuppressWarnings("unchecked")
- protected <T extends IBodyConstruct> T parseStmt(String stmt) throws IOException, LexerException, SyntaxException
- {
- String program = stmt + "\nend program\n";
- InputStream in = new ByteArrayInputStream(program.getBytes());
- ASTExecutableProgramNode ast = new Parser().parse(LexerFactory.createLexer(in, null, null, SourceForm.UNPREPROCESSED_FREE_FORM, true));
- assertTrue(ast != null);
- LoopReplacer.replaceAllLoopsIn(ast);
- return (T)((ASTMainProgramNode)ast.getProgramUnitList().get(0)).getBody().get(0);
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/DependencesTest.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/DependencesTest.java
deleted file mode 100644
index 34cb16c..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/DependencesTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.analysis.dependence;
-
-import org.eclipse.photran.internal.core.analysis.dependence.LoopDependences;
-
-/**
- * Unit tests for the Dependences class, which collects array dependences in a perfect loop nest.
- *
- * @author Jeff Overbey
- */
-public class DependencesTest extends BaseTestCase
-{
- public void testPage38() throws Exception
- {
- LoopDependences deps = dependences(
- "DO I = 1, N\n" +
- " A(I + 1) = A(I) + B(I) ! S1\n" +
- "ENDDO\n");
-
- assertEquals("[a(1*i+1)]", deps.getWrites().toString());
- assertEquals("[a(1*i+0), i, b(1*i+0), i]", deps.getReads().toString());
-
- assertEquals("[Anti-dependence from a(1*i+0) to a(1*i+1), Flow dependence from a(1*i+1) to a(1*i+0)]",
- deps.getDependences().toString());
- }
-
- public void testPage39() throws Exception
- {
- LoopDependences deps = dependences(
- "DO I = 1, N\n" +
- " A(I + 2) = A(I) + B(I) ! S1\n" +
- "ENDDO\n");
-
- assertEquals("[a(1*i+2)]", deps.getWrites().toString());
- assertEquals("[a(1*i+0), i, b(1*i+0), i]", deps.getReads().toString());
-
- assertEquals("[Anti-dependence from a(1*i+0) to a(1*i+2), Flow dependence from a(1*i+2) to a(1*i+0)]",
- deps.getDependences().toString());
- }
-
- public void testFalse1() throws Exception
- {
- LoopDependences deps = dependences(
- "DO I = 1, N\n" +
- " A(2*I) = A(2*I + 1)\n" +
- "ENDDO\n");
-
- assertEquals("[a(2*i+0)]", deps.getWrites().toString());
- assertEquals("[a(2*i+1), i]", deps.getReads().toString());
-
- assertTrue(deps.getDependences().isEmpty());
- }
-
- public void testPage49() throws Exception
- {
- LoopDependences deps = dependences(
- "DO I = 1, N\n" +
- " A(I + 1) = F(I) ! S1\n" +
- " F(I + 1) = A(I) ! S2\n" +
- "ENDDO\n");
-
- assertEquals("[a(1*i+1), f(1*i+1)]", deps.getWrites().toString());
- assertEquals("[f(1*i+0), i, a(1*i+0), i]", deps.getReads().toString());
-
- assertEquals("[Anti-dependence from f(1*i+0) to f(1*i+1), " +
- "Flow dependence from a(1*i+1) to a(1*i+0), " +
- "Anti-dependence from a(1*i+0) to a(1*i+1), " +
- "Flow dependence from f(1*i+1) to f(1*i+0)]",
- deps.getDependences().toString());
- }
-
- /*
- public void testFalse2() throws Exception
- {
- LoopDependences deps = dependences(
- "DO I = 1, N\n" +
- " A(-1*I) = A(I)\n" +
- "ENDDO\n");
-
- assertEquals("[a(-1*i+0)]", deps.getWrites().toString());
- assertEquals("[a(1*i+0), i]", deps.getReads().toString());
-
- assertTrue(deps.getDependences().isEmpty());
- }
- */
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/GCDTestTest.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/GCDTestTest.java
deleted file mode 100644
index b06d8c0..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/GCDTestTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.analysis.dependence;
-
-import junit.framework.TestCase;
-
-import org.eclipse.photran.internal.core.analysis.dependence.GCDTest;
-
-/**
- *
- * @author Jeff Overbey
- */
-public class GCDTestTest extends TestCase
-{
- /**
- * DO I = 1, N
- * A(I + 1) = A(I) + B(I) ! S1
- * ENDDO
- */
- public void testPage38()
- {
- assertTrue(test(
- 1,
- // Constant term
- // | Coefficient of I
- // | |
- // V V
- new int[] { 1, 1 },
- new int[] { 0, 1 }));
- }
-
- /**
- * DO I = 1, N
- * A(I + 2) = A(I) + B(I) ! S1
- * ENDDO
- */
- public void testPage39()
- {
- assertTrue(test(
- 1,
- // Constant term
- // | Coefficient of I
- // | |
- // V V
- new int[] { 2, 1 },
- new int[] { 0, 1 }));
- }
-
- /**
- * DO I = 1, N
- * A(2*I) = A(2*I + 1)
- * ENDDO
- */
- public void testFalse()
- {
- assertFalse(test(
- 1,
- // Constant term
- // | Coefficient of I
- // | |
- // V V
- new int[] { 0, 2 },
- new int[] { 1, 2 }));
- }
-
- private boolean test(int n, int[] a, int[] b)
- {
- return new GCDTest().test(n, null, null, a, b, null);
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/TestSeparatedListRemoval.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/TestSeparatedListRemoval.java
deleted file mode 100644
index bd14432..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/analysis/dependence/TestSeparatedListRemoval.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.analysis.dependence;
-
-import java.io.IOException;
-
-import org.eclipse.photran.internal.core.SyntaxException;
-import org.eclipse.photran.internal.core.lexer.LexerException;
-import org.eclipse.photran.internal.core.parser.ASTEntityDeclNode;
-import org.eclipse.photran.internal.core.parser.ASTTypeDeclarationStmtNode;
-import org.eclipse.photran.internal.core.parser.Parser.IASTListNode;
-
-/**
- * Test to verify that ASTSeparatedListNode#remove correctly removes commas
- *
- * @author Jeff Overbey
- */
-public class TestSeparatedListRemoval extends BaseTestCase
-{
- public void testSeparatedListRemoval() throws IOException, LexerException, SyntaxException
- {
- ASTTypeDeclarationStmtNode stmt = parseStmt("integer a, b, c, d, e");
- IASTListNode<ASTEntityDeclNode> decls = stmt.getEntityDeclList();
- decls.remove(0);
- assertEquals("integer b, c, d, e", stmt.toString().trim());
- ASTEntityDeclNode b = decls.get(0);
- decls.remove(b);
- assertEquals("integer c, d, e", stmt.toString().trim());
- decls.remove(1);
- assertEquals("integer c, e", stmt.toString().trim());
- decls.remove(1);
- assertEquals("integer c", stmt.toString().trim());
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/AbstractParserTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/AbstractParserTestCase.java
deleted file mode 100644
index e979252..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/AbstractParserTestCase.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests;
-
-import java.io.File;
-import java.io.IOException;
-
-import junit.framework.ComparisonFailure;
-import junit.framework.TestCase;
-
-import org.eclipse.photran.core.vpg.util.SemanticError;
-import org.eclipse.photran.internal.core.lexer.LexerFactory;
-import org.eclipse.photran.internal.core.lexer.SourceForm;
-import org.eclipse.photran.internal.core.parser.ASTExecutableProgramNode;
-import org.eclipse.photran.internal.core.parser.Parser;
-
-/**
- * A test case for parsing a single file. Created by <code>ParserTestSuite</code>.
- *
- * @author joverbey
- */
-public abstract class AbstractParserTestCase extends TestCase
-{
- protected File file = null;
- protected boolean isFixedForm = false;
- protected String fileDescription = null;
-
- /**
- * Constructor
- *
- * @param filename the file to parse
- * @param isFixedForm true iff the file is in fixed format
- */
- public AbstractParserTestCase(File file, boolean isFixedForm, String testCaseDescription)
- {
- super("test"); // name of method to run
- this.file = file;
- this.isFixedForm = isFixedForm;
- this.fileDescription = testCaseDescription;
- }
-
- /**
- * Method called by JUnit: Parses the given file.
- *
- * @throws Exception
- */
- public final void test() throws Exception
- {
- if (file == null) return; // for when JUnit invokes the no-arguments constructor and reflectively invokes this method
-
- try
- {
- SourceForm sourceForm = createSourceForm();
- ASTExecutableProgramNode ast = new Parser().parse(LexerFactory.createLexer(file, sourceForm, true));
- assertTrue(ast != null);
- handleAST(ast);
- }
- catch (ComparisonFailure f)
- {
- throw f;
- }
- catch (Throwable t)
- {
- System.err.println(file.getName());
- throw new Exception(fileDescription, t);
- }
- }
-
- protected SourceForm createSourceForm()
- {
- SourceForm sourceForm = (isFixedForm ? SourceForm.FIXED_FORM : SourceForm.UNPREPROCESSED_FREE_FORM); /*SourceForm.preprocessedFreeForm(new IncludeLoaderCallback(null)
- {
- @Override public InputStream getIncludedFileAsStream(String fileToInclude) throws FileNotFoundException
- {
- throw new FileNotFoundException("INCLUDE lines not supported in JUnit tests");
- }
- }));*/
- return sourceForm;
- }
-
- /**
- * Subclasses can override this method to do something interesting with the AST
- *
- * @param ast The abstract syntax tree for the Fortran file that was parsed
- * @throws IOException
- */
- protected abstract void handleAST(ASTExecutableProgramNode ast) throws IOException, SemanticError;
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/AbstractParserTestSuite.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/AbstractParserTestSuite.java
deleted file mode 100644
index 5411edf..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/AbstractParserTestSuite.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileFilter;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.FilenameFilter;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import junit.framework.TestSuite;
-
-/**
- * Attempts to parse all of the Fortran source code found in the subdirectories of a particular directory.
- * Created by the various classes in org.eclipse.photran.internal.core.tests.parser.
- *
- * @author joverbey
- */
-public abstract class AbstractParserTestSuite extends TestSuite
-{
- public static final String TEST_ROOT = "../org.eclipse.photran.core.vpg.tests/parser-test-code/";
-
- protected String directory;
- protected boolean isFixedForm;
-
- public AbstractParserTestSuite(String directorySuffix, boolean isFixedForm, boolean mustExist) throws FileNotFoundException, IOException
- {
- this.directory = getFullPath(directorySuffix);
- this.isFixedForm = isFixedForm;
-
- setName(getDescription(directorySuffix, isFixedForm, mustExist));
-
- File dir = new File(directory);
- if (dir.exists()) processDirectory(dir, getFilesToSkip(dir));
- }
-
- protected String getDescription(String directorySuffix, boolean isFixedForm, boolean mustExist)
- {
- String dir = getFullPath(directorySuffix);
-
- StringBuffer sb = new StringBuffer(256);
- sb.append(describeTestAction());
- sb.append(" ");
- sb.append(directorySuffix);
- sb.append(isFixedForm ? " (fixed format)" : " (free format)");
- String message = sb.toString();
-
- if (!new File(dir).exists())
- {
- if (mustExist)
- throw new Error("Unable to find directory " + dir + " (working directory is " + getWorkingDirectory() + ")");
- else
- message = "NOTE: Confidential parser tests are not installed on this system: " + dir + " does not exist";
- }
-
- return message;
- }
-
- private String getWorkingDirectory()
- {
- try
- {
- return new File(".").getCanonicalPath();
- }
- catch (IOException e)
- {
- return "???";
- }
- }
-
- protected abstract String describeTestAction();
-
- private static String getFullPath(String directorySuffix)
- {
- return TEST_ROOT + directorySuffix + (directorySuffix.endsWith("/") ? "" : "/");
- }
-
- protected Set<String> getFilesToSkip(File dir)
- {
- File list = new File(dir, "PHOTRAN-PARSER-ERRORS.txt");
- if (list.exists() && list.canRead())
- return filesListedIn(list);
- else
- return Collections.<String>emptySet();
- }
-
- protected Set<String> filesListedIn(File list)
- {
- try
- {
- Set<String> result = new HashSet<String>();
-
- BufferedReader r = new BufferedReader(new FileReader(list));
- for (String line = r.readLine(); line != null; line = r.readLine())
- {
- line = line.trim().toLowerCase();
- if (!line.equals(""))
- result.add(line.trim().toLowerCase());
- }
-
- return result;
- }
- catch (IOException e)
- {
- throw new Error(e);
- }
- }
-
- private void processDirectory(File dir, Set<String> filenamesToSkip)
- {
- addTestsFor(
- dir.listFiles(isFixedForm ? FIXED_FORM_FILENAME_FILTER : FREE_FORM_FILENAME_FILTER),
- filenamesToSkip);
-
- for (File subdir : dir.listFiles(DIRECTORY_FILTER))
- processDirectory(subdir, filenamesToSkip);
- }
-
- private void addTestsFor(File[] filesInDirectory, Set<String> filenamesToSkip)
- {
- for (File file : filesInDirectory)
- if (!shouldSkip(file, filenamesToSkip))
- addTest(createTestFor(file, isFixedForm, describe(file)));
- }
-
- protected boolean shouldSkip(File file, Set<String> filenamesToSkip)
- {
- return filenamesToSkip.contains(file.getName().toLowerCase());
- }
-
- protected abstract AbstractParserTestCase createTestFor(File file, boolean isFixedForm, String fileDescription);
-
- private String describe(File file)
- {
- return file.getAbsolutePath().substring(directory.length());
- }
-
- private static FilenameFilter FREE_FORM_FILENAME_FILTER = new FilenameFilter()
- {
- public boolean accept(File dir, String name)
- {
- return (name.endsWith(".f90")
- || name.endsWith(".f03")
- || name.endsWith(".F90")
- || name.endsWith(".F03")
- || name.endsWith(".FRE")) && !name.startsWith("XXX");
- }
- };
-
- private static FilenameFilter FIXED_FORM_FILENAME_FILTER = new FilenameFilter()
- {
- public boolean accept(File dir, String name)
- {
- return (name.endsWith(".f")
- || name.endsWith(".FIX")) && !name.startsWith("XXX");
- }
- };
-
- private static FileFilter DIRECTORY_FILTER = new FileFilter()
- {
- public boolean accept(File f)
- {
- return f.isDirectory() && !f.getName().startsWith("XXX");
- }
- };
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/AbstractSourceEditorTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/AbstractSourceEditorTestCase.java
deleted file mode 100644
index 88bcdcc..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/AbstractSourceEditorTestCase.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests;
-
-import java.io.File;
-import java.io.IOException;
-
-import junit.framework.TestCase;
-
-import org.eclipse.photran.core.vpg.util.SemanticError;
-import org.eclipse.photran.internal.core.parser.ASTExecutableProgramNode;
-import org.eclipse.photran.internal.core.refactoring.infrastructure.SourcePrinter;
-
-public abstract class AbstractSourceEditorTestCase extends TestCase
-{
- private ASTExecutableProgramNode result = null;
-
- /**
- * Parses the given file as free form Fortran source code
- */
- public ASTExecutableProgramNode load(String filename) throws Exception
- {
- new AbstractParserTestCase(new File("../org.eclipse.photran.core.vpg.tests/source-editor-test-code/" + filename), false, AbstractSourceEditorTestCase.class.getName())
- {
- @Override
- protected void handleAST(ASTExecutableProgramNode ast) throws IOException, SemanticError
- {
- result = ast;
- }
- }.test();
-
- if (result == null) throw new Exception("Unable to parse " + filename);
- return result;
- }
-
- /**
- * Checks whether two ASTs produce identical source code
- */
- protected void assertEquals(ASTExecutableProgramNode expected, ASTExecutableProgramNode actual)
- {
- assertEquals(SourcePrinter.getSourceCodeFromAST(expected),
- SourcePrinter.getSourceCodeFromAST(actual));
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/FailingParserTestSuite.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/FailingParserTestSuite.java
deleted file mode 100644
index 96b5b67..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/FailingParserTestSuite.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.Set;
-
-/**
- * This is a special instance of {@link ParserTestSuite} which attempts to parse only files listed
- * in a PHOTRAN-PARSER-ERRORS.txt file in the project's directory.
- *
- * @author joverbey
- */
-public abstract class FailingParserTestSuite extends ParserTestSuite
-{
- public FailingParserTestSuite(String directorySuffix, boolean isFixedForm, boolean mustExist) throws FileNotFoundException, IOException
- {
- super(directorySuffix, isFixedForm, mustExist);
- }
-
- @Override protected boolean shouldSkip(File file, Set<String> filenamesToSkip)
- {
- return !super.shouldSkip(file, filenamesToSkip);
- }
-
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/LoopReplacerSRTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/LoopReplacerSRTestCase.java
deleted file mode 100644
index 05b160c..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/LoopReplacerSRTestCase.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests;
-
-import java.io.File;
-
-import org.eclipse.photran.internal.core.analysis.loops.LoopReplacer;
-import org.eclipse.photran.internal.core.parser.ASTExecutableProgramNode;
-
-public class LoopReplacerSRTestCase extends SourceReproductionTestCase
-{
- private long elapsedTime = 0L;
-
- public LoopReplacerSRTestCase(File file, boolean isFixedForm, String testCaseDescription)
- {
- super(file, isFixedForm, testCaseDescription);
- }
-
- @Override protected void transform(ASTExecutableProgramNode ast)
- {
- long start = System.currentTimeMillis();
-
- LoopReplacer.replaceAllLoopsIn(ast);
-
- elapsedTime = System.currentTimeMillis() - start;
- }
-
- public void testPerformance()
- {
- assertTrue("Loop replacer must complete in less than 5 seconds ("
- + (this.file == null ? "???" : this.file.getName())
- + " took "
- + ((elapsedTime/1000) + (elapsedTime%1000 > 500 ? 1 : 0))
- + " seconds)",
- elapsedTime < 5000);
- }
-
- public LoopReplacerSRTestCase() { super(null, false, ""); } // to keep JUnit quiet
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/LoopReplacerSRTestSuite.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/LoopReplacerSRTestSuite.java
deleted file mode 100644
index 4c1288b..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/LoopReplacerSRTestSuite.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-public abstract class LoopReplacerSRTestSuite extends AbstractParserTestSuite
-{
- public LoopReplacerSRTestSuite(String directorySuffix, boolean isFixedForm, boolean mustExist) throws FileNotFoundException, IOException
- {
- super(directorySuffix, isFixedForm, mustExist);
- }
-
- @Override
- protected String describeTestAction()
- {
- return "Replace loops and reproduce source code for";
- }
-
- @Override
- protected AbstractParserTestCase createTestFor(File file, boolean isFixedForm, String fileDescription)
- {
- return new LoopReplacerSRTestCase(file, isFixedForm, fileDescription);
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/MultiTestSuite.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/MultiTestSuite.java
deleted file mode 100644
index 616eff5..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/MultiTestSuite.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.TestSuite;
-
-/**
- * An aggregate test suite that tests the parser, source reproducer, and loop replacer.
- *
- * @author Jeff Overbey
- */
-public class MultiTestSuite extends TestSuite
-{
- public MultiTestSuite(String directorySuffix, boolean isFixedForm, boolean mustExist) throws FileNotFoundException, IOException
- {
- setName("Running multiple tests on " + directorySuffix);
-
- addTest(new ParserTestSuite(directorySuffix, isFixedForm, mustExist) {});
-
- if (!isFixedForm)
- {
- addTest(new SourceReproductionTestSuite(directorySuffix, isFixedForm, mustExist) {});
- addTest(new LoopReplacerSRTestSuite(directorySuffix, isFixedForm, mustExist) {});
- }
- }
-
- public MultiTestSuite() {;} // to keep JUnit quiet
- public void test() {} // to keep JUnit quiet
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/ParserTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/ParserTestCase.java
deleted file mode 100644
index 2ab0089..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/ParserTestCase.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests;
-
-import java.io.File;
-
-import org.eclipse.photran.internal.core.parser.ASTExecutableProgramNode;
-
-/**
- * A test case which runs the parser over a file, expecting a successful parse.
- * Created by {@link ParserTestSuite}.
- *
- * @author joverbey
- */
-public class ParserTestCase extends AbstractParserTestCase
-{
- public ParserTestCase(File file, boolean isFixedForm, String testCaseDescription)
- {
- super(file, isFixedForm, testCaseDescription);
- }
-
- @Override
- protected void handleAST(ASTExecutableProgramNode ast)
- {
- ;
- }
-
- public ParserTestCase() { super(null, false, ""); } // to keep JUnit quiet
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/ParserTestSuite.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/ParserTestSuite.java
deleted file mode 100644
index 527698b..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/ParserTestSuite.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-/**
- * Creates a suite of {@link ParserTestCase} tests from Fortran source files in a particular directory.
- *
- * @author joverbey
- */
-public abstract class ParserTestSuite extends AbstractParserTestSuite
-{
- public ParserTestSuite(String directorySuffix, boolean isFixedForm, boolean mustExist) throws FileNotFoundException, IOException
- {
- super(directorySuffix, isFixedForm, mustExist);
- }
-
- @Override
- protected String describeTestAction()
- {
- return "Parse";
- }
-
- @Override
- protected AbstractParserTestCase createTestFor(File file, boolean isFixedForm, String fileDescription)
- {
- return new ParserTestCase(file, isFixedForm, fileDescription);
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/SourceReproductionTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/SourceReproductionTestCase.java
deleted file mode 100644
index 2f4e734..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/SourceReproductionTestCase.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-
-import org.eclipse.photran.internal.core.parser.ASTExecutableProgramNode;
-import org.eclipse.photran.internal.core.refactoring.infrastructure.SourcePrinter;
-
-public class SourceReproductionTestCase extends AbstractParserTestCase
-{
- public SourceReproductionTestCase(File file, boolean isFixedForm, String testCaseDescription)
- {
- super(file, isFixedForm, testCaseDescription);
- }
-
- @Override
- protected void handleAST(ASTExecutableProgramNode ast) throws IOException
- {
- String originalSourceCode = getSourceCodeFromFile(file);
- transform(ast);
- String reproducedSourceCode = getSourceCodeFromAST(ast);
- assertEquals(originalSourceCode, reproducedSourceCode);
- }
-
- protected void transform(ASTExecutableProgramNode ast)
- {
- // Subclass and override to transform AST first
- }
-
- private String getSourceCodeFromFile(File file) throws IOException
- {
- StringBuffer sb = new StringBuffer(4096);
- BufferedReader in = new BufferedReader(new FileReader(file));
- for (int ch = in.read(); ch >= 0; ch = in.read())
- sb.append((char)ch);
- in.close();
- return sb.toString();
- }
-
- private String getSourceCodeFromAST(ASTExecutableProgramNode ast)
- {
- return SourcePrinter.getSourceCodeFromAST(ast);
- }
-
- public SourceReproductionTestCase() { super(null, false, ""); } // to keep JUnit quiet
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/SourceReproductionTestSuite.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/SourceReproductionTestSuite.java
deleted file mode 100644
index cd60d3e..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/SourceReproductionTestSuite.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-public abstract class SourceReproductionTestSuite extends AbstractParserTestSuite
-{
- public SourceReproductionTestSuite(String directorySuffix, boolean isFixedForm, boolean mustExist) throws FileNotFoundException, IOException
- {
- super(directorySuffix, isFixedForm, mustExist);
- }
-
- @Override
- protected String describeTestAction()
- {
- return "Reproduce source code for";
- }
-
- @Override
- protected AbstractParserTestCase createTestFor(File file, boolean isFixedForm, String fileDescription)
- {
- return new SourceReproductionTestCase(file, isFixedForm, fileDescription);
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/addonlytousestmt/AddOnlyToUseTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/addonlytousestmt/AddOnlyToUseTestCase.java
deleted file mode 100644
index 5a641dd..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/addonlytousestmt/AddOnlyToUseTestCase.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.addonlytousestmt;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.photran.core.vpg.util.LineCol;
-import org.eclipse.photran.internal.core.refactoring.AddOnlyToUseStmtRefactoring;
-import org.eclipse.photran.refactoring.tests.RefactoringTestCase;
-
-/**
- *
- * @author Kurt Hendle
- */
-public class AddOnlyToUseTestCase extends RefactoringTestCase
-{
- private static final String DIR = "add-only-to-use-test-code";
-
- private static NullProgressMonitor pm = new NullProgressMonitor();
-
- protected String[] filenames;
- protected LineCol position;
- protected int length;
- protected boolean shouldFailPreconditionCheck;
- protected boolean shouldFailFinalPreconditionCheck;
- protected String[] entityNames = null;
-
- public AddOnlyToUseTestCase() {;}
-
- public AddOnlyToUseTestCase(String[] filenames, LineCol position, int length, boolean shouldFailPreconditionCheck,
- boolean shouldFailFinalPreCheck)
- {
- this(filenames, position, length, shouldFailPreconditionCheck,
- shouldFailFinalPreCheck, (String[])null);
- }
-
- public AddOnlyToUseTestCase(String[] filenames, LineCol position, int length, boolean shouldFailPreconditionCheck,
- boolean shouldFailFinalPreCheck, String... entityNames)
- {
- this.filenames = filenames;
- this.position = position;
- this.length = length;
- this.shouldFailPreconditionCheck = shouldFailPreconditionCheck;
- this.shouldFailFinalPreconditionCheck = shouldFailFinalPreCheck;
- this.entityNames = entityNames;
- this.setName("test");
- }
-
- protected void doRefactoring() throws Exception
- {
- String description = "Attempting to add ONLY clause to USE statement.";
-
- AddOnlyToUseStmtRefactoring refactoring = createRefactoring(filenames, position, length);
-
- RefactoringStatus status = refactoring.checkInitialConditions(pm);
-
- if(shouldFailPreconditionCheck)
- assertTrue(description + " failed initial precondition check: " + status.toString(), status.hasError());
-
- if(entityNames != null)
- {
- for(int i=0; i<entityNames.length; i++)
- refactoring.addToOnlyList(entityNames[i]);
- }
-
- status = refactoring.checkFinalConditions(pm);
- if (shouldFailFinalPreconditionCheck)
- {
- assertTrue(description + "failed final precondition check: " + status.toString(), status.hasError());
- }
- else
- {
- assertTrue(description + "should not fail final precondition check: " + status.toString(), !status.hasError());
-
- Change change = refactoring.createChange(pm);
- assertNotNull(description + " returned null Change object", change);
- assertTrue(description + " returned invalid Change object", change.isValid(pm).isOK());
- change.perform(pm);
- }
- }
-
- private String readFileToString(final String path) throws IOException
- {
- FileInputStream stream = new FileInputStream(new File(path));
- return readStream(stream);
- }
-
- private AddOnlyToUseStmtRefactoring createRefactoring(final String[] filenames, final LineCol lineCol, final int length) throws Exception
- {
- for (int i = 1; i < filenames.length; i++)
- importFile(DIR, filenames[i]);
-
- final IFile file = importFile(DIR, filenames[0]);
- Document doc = new Document(readFileToString(DIR+"/"+filenames[0]));
- TextSelection text = new TextSelection(doc, getLineColOffset(filenames[0], lineCol), length);
- return new AddOnlyToUseStmtRefactoring(file, text);
- }
-
- protected String readTestFile(String filename) throws IOException, URISyntaxException
- {
- return super.readTestFile(DIR, filename);
- }
-
- public void test() throws Exception
- {
- if (filenames == null) return; // when JUnit invokes this outside a test suite
-
- doRefactoring();
- if (!shouldFailPreconditionCheck && !shouldFailFinalPreconditionCheck)
- assertEquals(
- sanitize(readTestFile(filenames[0] + ".result")),
- sanitize(readWorkspaceFile(filenames[0])));
- }
-
- public String sanitize(String dirtyString)
- {
- return dirtyString.replaceAll("\r", "");
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/addonlytousestmt/AddOnlyToUseTestSuite.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/addonlytousestmt/AddOnlyToUseTestSuite.java
deleted file mode 100644
index 61d841c..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/addonlytousestmt/AddOnlyToUseTestSuite.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.addonlytousestmt;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- *
- * @author Kurt Hendle
- */
-public class AddOnlyToUseTestSuite extends TestSuite
-{
- public static Test suite() throws Exception
- {
- TestSuite suite = new TestSuite();
-
- //1. basic test, add no list, leave the file the same
- String[] test1Files = new String[] { "test1.f90", "module2.f90", "module3.f90", "module4.f90" };
- suite.addTest(successTest(test1Files, new LineCol(3,5), 7));
-
- //2. basic test, add list of given names
- String[] test2Files = new String[] { "test2.f90", "module2.f90", "module3.f90", "module4.f90" };
- suite.addTest(successTest(test2Files, new LineCol(3,5), 7, "help_common3", "onlyTest"));
-
- //3. precondition test - give an empty selection for module name
- String[] test3Files = new String[] { "test3.f90", "module2.f90", "module3.f90", "module4.f90", "module5.f90" };
- suite.addTest(finalPreconditionTest(test3Files, new LineCol(3,5), 0));
-
- //4. precondition test - give a non-existent module name
- String[] test4Files = new String[] { "test3.f90", "module2.f90", "module3.f90", "module4.f90", "module5.f90" };
- suite.addTest(finalPreconditionTest(test4Files, new LineCol(8,9), 5));
-
- //5. precondition test - give a module containing no declarations
- String[] test5Files = new String[] { "test3.f90", "module2.f90", "module3.f90", "module4.f90", "module5.f90" };
- suite.addTest(preconditionTest(test5Files, new LineCol(5,5), 7));
-
- //6. precondition test - have entity conflict with local variable
- String[] test6Files = new String[] { "test6.f90", "module4.f90" }; //v name conflict
- suite.addTest(finalPreconditionTest(test6Files, new LineCol(2,9), 7, "f"));
-
- //7. precondition test - have 2 modules in project with same name
- String[] test7Files = new String[] { "test7.f90", "module4.f90" };
- suite.addTest(preconditionTest(test7Files, new LineCol(2,9), 7));
-
- //8. precondition test - have 2 declarations of subroutine in same project
- String[] test8Files = new String[] { "test8.f90", "module4.f90" };
- suite.addTest(finalPreconditionTest(test8Files, new LineCol(2,9), 7, "help_common4"));
-
- return suite;
- }
-
- private static TestSuite successTest(String[] filenames, LineCol position, int length)
- {
- return successTest(filenames, position, length, (String[])null);
- }
-
- private static TestSuite successTest(String[] filenames, LineCol position, int length, String... entityNames)
- {
- TestSuite subSuite = new TestSuite("Adding ONLY clause to USE statement - " + filenames[0]);
- subSuite.addTest(new AddOnlyToUseTestCase(filenames, position, length, false, false, entityNames));
- return subSuite;
- }
-
- private static TestSuite preconditionTest(String[] filenames, LineCol position, int length, String... entityNames)
- {
- TestSuite subSuite = new TestSuite("Testing preconditions for adding ONLY to USE statement - " +
- filenames[0]);
- subSuite.addTest(new AddOnlyToUseTestCase(filenames, position, length, true, false, entityNames));
- return subSuite;
- }
-
- private static TestSuite finalPreconditionTest(String[] filenames, LineCol position, int length, String... entityNames)
- {
- TestSuite subSuite = new TestSuite("Testing final preconditions for adding ONLY to USE statement - " +
- filenames[0]);
- subSuite.addTest(new AddOnlyToUseTestCase(filenames, position, length, false, true, entityNames));
- return subSuite;
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/f_source_editing/TestChangeText.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/f_source_editing/TestChangeText.java
deleted file mode 100644
index d0e396c..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/f_source_editing/TestChangeText.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.f_source_editing;
-
-import org.eclipse.photran.internal.core.lexer.Token;
-import org.eclipse.photran.internal.core.parser.ASTExecutableProgramNode;
-import org.eclipse.photran.internal.core.parser.ASTMainProgramNode;
-import org.eclipse.photran.internal.core.parser.ASTProgramNameNode;
-import org.eclipse.photran.internal.core.parser.ASTProgramStmtNode;
-import org.eclipse.photran.internal.core.parser.IProgramUnit;
-import org.eclipse.photran.internal.core.tests.AbstractSourceEditorTestCase;
-
-public class TestChangeText extends AbstractSourceEditorTestCase
-{
- public void testChangeProggie() throws Exception
- {
- ASTExecutableProgramNode ast = load("hello-1-initial.f90");
- IProgramUnit programUnit1 = ast.getProgramUnitList().get(0);
- ASTMainProgramNode mainProgram = (ASTMainProgramNode)programUnit1;
- ASTProgramStmtNode programStmt = mainProgram.getProgramStmt();
- ASTProgramNameNode programName = programStmt.getProgramName();
- Token proggie = programName.getProgramName();
-
- proggie.setText("p");
- assertEquals(load("hello-2-proggie-shorter.f90"), ast);
-
- proggie.setText("proggiedoggie");
- assertEquals(load("hello-3-proggie-longer.f90"), ast);
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/f_source_editing/TestRemove.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/f_source_editing/TestRemove.java
deleted file mode 100644
index df98866..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/f_source_editing/TestRemove.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.f_source_editing;
-
-import org.eclipse.photran.internal.core.parser.ASTExecutableProgramNode;
-import org.eclipse.photran.internal.core.parser.ASTMainProgramNode;
-import org.eclipse.photran.internal.core.parser.IInternalSubprogram;
-import org.eclipse.photran.internal.core.parser.Parser.IASTListNode;
-import org.eclipse.photran.internal.core.tests.AbstractSourceEditorTestCase;
-
-public class TestRemove extends AbstractSourceEditorTestCase
-{
- public void testRemoveQ() throws Exception
- {
- ASTExecutableProgramNode ast = load("hello-1-initial.f90");
- IASTListNode<IInternalSubprogram> subprograms = ((ASTMainProgramNode)ast.getProgramUnitList().get(0)).getInternalSubprograms();
- subprograms.remove(0);
- assertEquals(load("hello-4-q-cut.f90"), ast);
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/g_type_check/TypeCheckerTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/g_type_check/TypeCheckerTestCase.java
deleted file mode 100644
index 8e39f97..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/g_type_check/TypeCheckerTestCase.java
+++ /dev/null
@@ -1,293 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.g_type_check;
-
-import java.io.ByteArrayInputStream;
-
-import junit.framework.TestCase;
-
-import org.eclipse.photran.internal.core.analysis.types.Type;
-import org.eclipse.photran.internal.core.analysis.types.TypeChecker;
-import org.eclipse.photran.internal.core.lexer.LexerFactory;
-import org.eclipse.photran.internal.core.lexer.SourceForm;
-import org.eclipse.photran.internal.core.parser.ASTAssignmentStmtNode;
-import org.eclipse.photran.internal.core.parser.ASTExecutableProgramNode;
-import org.eclipse.photran.internal.core.parser.ASTMainProgramNode;
-import org.eclipse.photran.internal.core.parser.IExpr;
-import org.eclipse.photran.internal.core.parser.Parser;
-
-/**
- * Fortran type checker unit tests
- *
- * @author Stoyan Gaydarov
- */
-public class TypeCheckerTestCase extends TestCase
-{
-
- /** Parses a Fortran expression. Does not bind identifiers, etc. */
- private Type getType(String expression) throws Exception
- {
- // We can only parse entire programs, so we embed the expression in
- // a parseable program, then extract the expression from the program's AST
-
- String program = "a = " + expression + "\nend";
- ASTExecutableProgramNode ast = new Parser().parse(LexerFactory.createLexer(new ByteArrayInputStream(program.getBytes()), null, "<literal text>", SourceForm.UNPREPROCESSED_FREE_FORM, true /*false*/));
- assertNotNull(ast);
- ASTMainProgramNode mainProg = (ASTMainProgramNode)ast.getProgramUnitList().get(0);
- ASTAssignmentStmtNode assignmentStmt = (ASTAssignmentStmtNode)mainProg.getBody().get(0);
- IExpr exprNode = assignmentStmt.getRhs();
- return TypeChecker.getTypeOf(exprNode);
- }
-
- private String character = "\"Stoyan\""; // used for character type
-
- public void testConstantExpressionTypes() throws Exception
- {
- assertEquals(Type.INTEGER, getType("3"));
- assertEquals(Type.REAL, getType("3.0"));
- assertEquals(Type.CHARACTER, getType(character));
- assertEquals(Type.DOUBLEPRECISION, getType("3.0D+00"));
- assertEquals(Type.COMPLEX, getType("(3,3)"));
- assertEquals(Type.LOGICAL, getType(".true."));
- }
-
- public void testUnaryExpressionTypes() throws Exception
- {
- assertEquals(Type.INTEGER, getType("-3"));
- assertEquals(Type.INTEGER, getType("+3"));
- assertEquals(Type.TYPE_ERROR, getType(".NOT. 3"));
-
- assertEquals(Type.REAL, getType("-3.0"));
- assertEquals(Type.REAL, getType("+3.0"));
- assertEquals(Type.TYPE_ERROR, getType(".NOT. 3.0"));
-
- assertEquals(Type.DOUBLEPRECISION, getType("-3.0D+00"));
- assertEquals(Type.DOUBLEPRECISION, getType("+3.0D+00"));
- assertEquals(Type.TYPE_ERROR, getType(".NOT. 3.0D+00"));
-
- assertEquals(Type.COMPLEX, getType("-(3,3)"));
- assertEquals(Type.COMPLEX, getType("+(3,3)"));
- assertEquals(Type.TYPE_ERROR, getType(".NOT. (3,3)"));
-
- assertEquals(Type.TYPE_ERROR, getType("-" + character)); //??
- assertEquals(Type.TYPE_ERROR, getType("+" + character)); //??
- assertEquals(Type.TYPE_ERROR, getType(".NOT. " + character));
-
- assertEquals(Type.TYPE_ERROR, getType("-.true."));
- assertEquals(Type.TYPE_ERROR, getType("+.true."));
- assertEquals(Type.LOGICAL, getType(".NOT. .true."));
- }
-
- public void testConcatOperations() throws Exception
- {
- assertEquals(Type.UNKNOWN, getType(character + " // " + "1"));
- assertEquals(Type.UNKNOWN, getType(character + " // " + "3.2"));
- assertEquals(Type.UNKNOWN, getType(character + " // " + "43.3D+00"));
- assertEquals(Type.UNKNOWN, getType(character + " // " + "(6,7)"));
- assertEquals(Type.UNKNOWN, getType(character + " // " + ".true."));
- assertEquals(Type.CHARACTER, getType(character + " // " + character));
- }
-
- public void testGEOperator() throws Exception
- {
- testComparasonOperations(" .GE. ");
- }
-
- public void testGTOperator() throws Exception
- {
- testComparasonOperations(" .GT. ");
- }
-
- public void testLEOperator() throws Exception
- {
- testComparasonOperations(" .LE. ");
- }
-
- public void testLTOperator() throws Exception
- {
- testComparasonOperations(" .LT. ");
- }
-
- public void testNEOperator() throws Exception
- {
- testComparasonOperations(" .NE. ");
- }
-
- public void testEQOperator() throws Exception
- {
- testComparasonOperations(" .EQ. ");
- }
-
- private void testComparasonOperations(String op) throws Exception
- {
- if(op.equals(" .EQ. ") || op.equals(" .NE. "))
- {
- assertEquals(Type.LOGICAL, getType("8" + op + "(4,5)"));
- assertEquals(Type.LOGICAL, getType("3.6" + op + "(3,8)"));
- assertEquals(Type.LOGICAL, getType("3.2D+00" + op + "(4,9)"));
- assertEquals(Type.LOGICAL, getType("(4,8)" + op + "7"));
- assertEquals(Type.LOGICAL, getType("(4,3)" + op + "5.4"));
- assertEquals(Type.LOGICAL, getType("(4,6)" + op + "(4,9)"));
- assertEquals(Type.LOGICAL, getType("(3,0)" + op + "3.0D+00"));
- }
- else
- {
- assertEquals(Type.TYPE_ERROR, getType("8" + op + "(4,5)"));
- assertEquals(Type.TYPE_ERROR, getType("3.6" + op + "(3,8)"));
- assertEquals(Type.TYPE_ERROR, getType("3.2D+00" + op + "(4,9)"));
- assertEquals(Type.TYPE_ERROR, getType("(4,8)" + op + "7"));
- assertEquals(Type.TYPE_ERROR, getType("(4,3)" + op + "5.4"));
- assertEquals(Type.TYPE_ERROR, getType("(4,6)" + op + "(4,9)"));
- assertEquals(Type.TYPE_ERROR, getType("(3,0)" + op + "3.0D+00"));
- }
-
- assertEquals(Type.LOGICAL, getType("9" + op + "3"));
- assertEquals(Type.LOGICAL, getType("5" + op + "3.0"));
- assertEquals(Type.LOGICAL, getType("4" + op + "2.0D+00"));
- assertEquals(Type.TYPE_ERROR, getType("3" + op + ".true."));
- assertEquals(Type.TYPE_ERROR, getType("1" + op + character));
-
- assertEquals(Type.LOGICAL, getType("3.0" + op + "7"));
- assertEquals(Type.LOGICAL, getType("3.3" + op + "3.5"));
- assertEquals(Type.LOGICAL, getType("4.0" + op + "3.0D+00"));
- assertEquals(Type.TYPE_ERROR, getType("3.2" + op + ".true."));
- assertEquals(Type.TYPE_ERROR, getType("4.1" + op + character));
-
- assertEquals(Type.LOGICAL, getType("3.1D+00" + op + "7"));
- assertEquals(Type.LOGICAL, getType("4.0D+00" + op + "5.4"));
- assertEquals(Type.LOGICAL, getType("5.0D+00" + op + "3.0D+00"));
- assertEquals(Type.TYPE_ERROR, getType("3.8D+00" + op + ".true."));
- assertEquals(Type.TYPE_ERROR, getType("2.1D+00" + op + character));
-
- assertEquals(Type.TYPE_ERROR, getType("(3,3)" + op + ".true."));
- assertEquals(Type.TYPE_ERROR, getType("(2,1)" + op + character));
-
- assertEquals(Type.TYPE_ERROR, getType(".true." + op + "7"));
- assertEquals(Type.TYPE_ERROR, getType(".true." + op + "5.4"));
- assertEquals(Type.TYPE_ERROR, getType(".true." + op + "(4,9)"));
- assertEquals(Type.TYPE_ERROR, getType(".true." + op + "3.0D+00"));
- assertEquals(Type.TYPE_ERROR, getType(".true." + op + ".true."));
- assertEquals(Type.TYPE_ERROR, getType(".true." + op + character));
-
- assertEquals(Type.TYPE_ERROR, getType(character + op + "7"));
- assertEquals(Type.TYPE_ERROR, getType(character + op + "5.4"));
- assertEquals(Type.TYPE_ERROR, getType(character + op + "(4,9)"));
- assertEquals(Type.TYPE_ERROR, getType(character + op + "3.0D+00"));
- assertEquals(Type.TYPE_ERROR, getType(character + op + ".true."));
- assertEquals(Type.TYPE_ERROR, getType(character + op + "c"));
-
- }
-
- public void testLogicalOperations() throws Exception
- {
-
- assertEquals(Type.LOGICAL, getType(".true. .AND. .true."));
- assertEquals(Type.TYPE_ERROR, getType("1 .AND. .true."));
- assertEquals(Type.TYPE_ERROR, getType("4.3 .AND. .true."));
- assertEquals(Type.TYPE_ERROR, getType("4.2D+00 .AND. .true."));
- assertEquals(Type.TYPE_ERROR, getType("(3,4) .AND. .true."));
- assertEquals(Type.TYPE_ERROR, getType(character + " .AND. .true."));
-
- assertEquals(Type.LOGICAL, getType(".true. .OR. .true."));
- assertEquals(Type.TYPE_ERROR, getType("1 .OR. .true."));
- assertEquals(Type.TYPE_ERROR, getType("4.3 .OR. .true."));
- assertEquals(Type.TYPE_ERROR, getType("4.2D+00 .OR. .true."));
- assertEquals(Type.TYPE_ERROR, getType("(3,4) .OR. .true."));
- assertEquals(Type.TYPE_ERROR, getType(character + " .OR. .true."));
-
- assertEquals(Type.LOGICAL, getType(".true. .EQV. .true."));
- assertEquals(Type.TYPE_ERROR, getType("1 .EQV. .true."));
- assertEquals(Type.TYPE_ERROR, getType("4.3 .EQV. .true."));
- assertEquals(Type.TYPE_ERROR, getType("4.2D+00 .EQV. .true."));
- assertEquals(Type.TYPE_ERROR, getType("(3,4) .EQV. .true."));
- assertEquals(Type.TYPE_ERROR, getType(character + " .EQV. .true."));
-
- assertEquals(Type.LOGICAL, getType(".true. .NEQV. .true."));
- assertEquals(Type.TYPE_ERROR, getType("1 .NEQV. .true."));
- assertEquals(Type.TYPE_ERROR, getType("4.3 .NEQV. .true."));
- assertEquals(Type.TYPE_ERROR, getType("4.2D+00 .NEQV. .true."));
- assertEquals(Type.TYPE_ERROR, getType("(3,4) .NEQV. .true."));
- assertEquals(Type.TYPE_ERROR, getType(character + " .NEQV. .true."));
-
- }
-
- public void testAddExpressionTypes() throws Exception
- {
- testOpExpressionTypes("+");
- }
-
- public void testSubtractExpressionTypes() throws Exception
- {
- testOpExpressionTypes("-");
- }
-
- public void testMultiplyExpressionTypes() throws Exception
- {
- testOpExpressionTypes("*");
- }
-
- public void testDivisionExpressionTypes() throws Exception
- {
- testOpExpressionTypes("/");
- }
-
- public void testPowerExpressionTypes() throws Exception
- {
- testOpExpressionTypes("**");
- }
-
- private void testOpExpressionTypes(String op) throws Exception
- {
-
- assertEquals(Type.INTEGER, getType("9" + op + "3"));
- assertEquals(Type.REAL, getType("5" + op + "3.0"));
- assertEquals(Type.COMPLEX, getType("8" + op + "(4,5)"));
- assertEquals(Type.DOUBLEPRECISION, getType("4" + op + "2.0D+00"));
- assertEquals(Type.TYPE_ERROR, getType("3" + op + ".true."));
- assertEquals(Type.TYPE_ERROR, getType("1" + op + character));
-
- assertEquals(Type.REAL, getType("3.0" + op + "7"));
- assertEquals(Type.REAL, getType("3.3" + op + "3.5"));
- assertEquals(Type.COMPLEX, getType("3.6" + op + "(3,8)"));
- assertEquals(Type.DOUBLEPRECISION, getType("4.0" + op + "3.0D+00"));
- assertEquals(Type.TYPE_ERROR, getType("3.2" + op + ".true."));
- assertEquals(Type.TYPE_ERROR, getType("4.1" + op + character));
-
- assertEquals(Type.COMPLEX, getType("(4,8)" + op + "7"));
- assertEquals(Type.COMPLEX, getType("(4,3)" + op + "5.4"));
- assertEquals(Type.COMPLEX, getType("(4,6)" + op + "(4,9)"));
- assertEquals(Type.COMPLEX, getType("(3,0)" + op + "3.0D+00"));
- assertEquals(Type.TYPE_ERROR, getType("(3,3)" + op + ".true."));
- assertEquals(Type.TYPE_ERROR, getType("(2,1)" + op + character));
-
- assertEquals(Type.DOUBLEPRECISION, getType("3.1D+00" + op + "7"));
- assertEquals(Type.DOUBLEPRECISION, getType("4.0D+00" + op + "5.4"));
- assertEquals(Type.COMPLEX, getType("3.2D+00" + op + "(4,9)"));
- assertEquals(Type.DOUBLEPRECISION, getType("5.0D+00" + op + "3.0D+00"));
- assertEquals(Type.TYPE_ERROR, getType("3.8D+00" + op + ".true."));
- assertEquals(Type.TYPE_ERROR, getType("2.1D+00" + op + character));
-
- assertEquals(Type.TYPE_ERROR, getType(".true." + op + "7"));
- assertEquals(Type.TYPE_ERROR, getType(".true." + op + "5.4"));
- assertEquals(Type.TYPE_ERROR, getType(".true." + op + "(4,9)"));
- assertEquals(Type.TYPE_ERROR, getType(".true." + op + "3.0D+00"));
- assertEquals(Type.TYPE_ERROR, getType(".true." + op + ".true."));
- assertEquals(Type.TYPE_ERROR, getType(".true." + op + character));
-
- assertEquals(Type.TYPE_ERROR, getType(character + op + "7"));
- assertEquals(Type.TYPE_ERROR, getType(character + op + "5.4"));
- assertEquals(Type.TYPE_ERROR, getType(character + op + "(4,9)"));
- assertEquals(Type.TYPE_ERROR, getType(character + op + "3.0D+00"));
- assertEquals(Type.TYPE_ERROR, getType(character + op + ".true."));
- assertEquals(Type.TYPE_ERROR, getType(character + op + "c"));
-
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/h_interface_links/InterfaceLinkTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/h_interface_links/InterfaceLinkTestCase.java
deleted file mode 100644
index 2d4afbb..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/h_interface_links/InterfaceLinkTestCase.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.h_interface_links;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.photran.core.IFortranAST;
-import org.eclipse.photran.core.vpg.PhotranVPG;
-import org.eclipse.photran.internal.core.analysis.binding.Definition;
-import org.eclipse.photran.internal.core.lexer.Token;
-import org.eclipse.photran.refactoring.tests.RefactoringTestCase;
-
-/**
- * Unit tests for {@link Definition#resolveInterfaceBinding()}
- * and {@link Definition#findMatchingDeclarationsInInterfaces()}
- *
- * @author Jeff Overbey
- */
-public class InterfaceLinkTestCase extends RefactoringTestCase
-{
- private static final String DIR = "interface-test-code";
-
- private IFile interface1;
- private IFile definition1;
- private IFile definition2;
- private IFile interface2;
-
- private Definition if1;
- private Definition if2;
- private Definition if3;
- private Definition if4;
- private Definition def1;
- private Definition def2;
- private Definition def3;
-
- @Override public void setUp() throws Exception
- {
- super.setUp();
-
- /* The four files are imported in this order so that
- * the INTERFACE block in the first file is seen /before/
- * all of the corresponding subprogram declarations,
- * while the INTERFACE block in the last file is seen
- * /after/ all of the corresponding subprograms.
- */
-
- interface1 = importFile(DIR, "interface1.f90");
- definition1 = importFile(DIR, "definition1.f90");
- definition2 = importFile(DIR, "definition2.f90");
- interface2 = importFile(DIR, "interface2.f90");
- // File Line Column
- if1 = findDefinition(interface1, 2, 20); // Ordinary INTERFACE block
- if2 = findDefinition(interface1, 10, 24); // INTERFACE block for a subprogram parameter
- if3 = findDefinition(interface1, 17, 24); // Ordinary INTERFACE block
- if4 = findDefinition(interface2, 2, 20); // Ordinary INTERFACE block
- def1 = findDefinition(interface1, 24, 18);
- def2 = findDefinition(definition1, 1, 18);
- def3 = findDefinition(definition2, 1, 18);
- }
-
- public void testResolveInterfaceBinding() throws Exception
- {
- checkContainsAllDefinitions(if1.resolveInterfaceBinding());
- assertTrue(if2.resolveInterfaceBinding().isEmpty()); // Interface for subprogram parameter
- checkContainsAllDefinitions(if3.resolveInterfaceBinding());
- checkContainsAllDefinitions(if4.resolveInterfaceBinding());
- }
-
- public void testFindMatchingDeclarationsInInterfaces() throws Exception
- {
- checkContainsAllInterfaces(def1.findMatchingDeclarationsInInterfaces());
- checkContainsAllInterfaces(def2.findMatchingDeclarationsInInterfaces());
- checkContainsAllInterfaces(def3.findMatchingDeclarationsInInterfaces());
- }
-
- private void checkContainsAllDefinitions(Collection<Definition> defs)
- {
- assertEquals(3, defs.size());
- assertTrue(defs.contains(def1));
- assertTrue(defs.contains(def2));
- assertTrue(defs.contains(def3));
- }
-
- private void checkContainsAllInterfaces(Collection<Definition> defs)
- {
- assertEquals(3, defs.size());
- assertTrue(defs.contains(if1));
- assertFalse(defs.contains(if2)); // Interface for subprogram parameter
- assertTrue(defs.contains(if3));
- assertTrue(defs.contains(if4));
- }
-
- private Definition findDefinition(IFile file, int line, int col)
- {
- IFortranAST ast = PhotranVPG.getInstance().acquireTransientAST(file); assertNotNull(ast);
- Token token = findTokenByLineCol(ast, line, col); assertNotNull(token);
- List<Definition> defs = token.resolveBinding(); assertEquals(1, defs.size());
- Definition def = defs.get(0);
- assertEquals(file, def.getTokenRef().getFile());
- assertEquals(token.getFileOffset(), def.getTokenRef().getOffset());
- return def;
- }
-
- private Token findTokenByLineCol(IFortranAST ast, int line, int col)
- {
- for (Token token : ast)
- if (token.getLine() == line && token.getCol() == col)
- return token;
-
- return null;
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/i_list_all/ListAllModulesTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/i_list_all/ListAllModulesTestCase.java
deleted file mode 100644
index 3c3c196..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/i_list_all/ListAllModulesTestCase.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.i_list_all;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.photran.core.vpg.PhotranVPG;
-import org.eclipse.photran.refactoring.tests.RefactoringTestCase;
-
-/**
- * Unit tests for {@link PhotranVPG#listAllModules()}
- *
- * @author Jeff Overbey
- */
-public class ListAllModulesTestCase extends RefactoringTestCase
-{
- private static final String DIR = "vpg-list-test-code";
-
- @Override public void setUp() throws Exception
- {
- super.setUp();
-
- /* The files are imported in this order so that the USE
- * statement in use-module1.f90 is seen /before/
- * the module declaration, while the USE statement for
- * module 4 is seen after it. Module2 and module3
- * are not used.
- */
-
- importFile(DIR, "use-module1.f90");
- importFile(DIR, "module1.f90");
- importFile(DIR, "module2-module3.f90");
- importFile(DIR, "module4.f90");
- importFile(DIR, "use-module4.f90");
- PhotranVPG.getInstance().ensureVPGIsUpToDate(new NullProgressMonitor());
- //PhotranVPG.getDatabase().printOn(System.out);
- }
-
- public void testListAllModules() throws Exception
- {
- assertCollectionsEqual(
- new String[] { "module1", "module2", "module3", "module4" },
- PhotranVPG.getInstance().listAllModules());
- }
-
- private <T> void assertCollectionsEqual(T[] expectedArray, Iterable<T> actualIterable)
- {
- List<T> expected = Arrays.asList(expectedArray);
-
- List<T> actual = new ArrayList<T>();
- for (T entry : actualIterable)
- actual.add(entry);
-
- assertEquals(expected, actual);
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/makeprivatepublic/MakePrivateEntityPublicTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/makeprivatepublic/MakePrivateEntityPublicTestCase.java
deleted file mode 100644
index 7e67895..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/makeprivatepublic/MakePrivateEntityPublicTestCase.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.makeprivatepublic;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.photran.core.vpg.util.LineCol;
-import org.eclipse.photran.internal.core.refactoring.MakePrivateEntityPublicRefactoring;
-import org.eclipse.photran.refactoring.tests.RefactoringTestCase;
-
-/**
- *
- * @author Kurt Hendle
- */
-public class MakePrivateEntityPublicTestCase extends RefactoringTestCase
-{
- private static final String DIR = "make-private-entity-public-test-code";
-
- private static NullProgressMonitor pm = new NullProgressMonitor();
-
- protected String filename;
- protected LineCol position;
- protected int length;
- protected boolean shouldFailPreconditionCheck;
-
- public MakePrivateEntityPublicTestCase() {;}
-
- public MakePrivateEntityPublicTestCase(String filename, LineCol position, int length, boolean shouldFailPreconditionCheck)
- {
- this.filename = filename;
- this.position = position;
- this.length = length;
- this.shouldFailPreconditionCheck = shouldFailPreconditionCheck;
- this.setName("test");
- }
-
- protected void doRefactoring() throws Exception
- {
- String description = "Attempting to make selected private variable public.";
-
- MakePrivateEntityPublicRefactoring refactoring = createRefactoring(filename, position, length);
-
- RefactoringStatus status = refactoring.checkInitialConditions(pm);
-
- if(shouldFailPreconditionCheck)
- assertTrue(description + " failed initial precondition check: " + status.toString(), status.hasError());
-
- status = refactoring.checkFinalConditions(pm);
- assertTrue(description + " failed final precondition check: " + status.toString(), !status.hasError());
-
- if(!shouldFailPreconditionCheck)
- {
- Change change = refactoring.createChange(pm);
- assertNotNull(description + " returned null Change object", change);
- assertTrue(description + " returned invalid Change object", change.isValid(pm).isOK());
- change.perform(pm);
- }
- }
-
- private MakePrivateEntityPublicRefactoring createRefactoring(final String filename, final LineCol lineCol, final int length) throws Exception
- {
- final IFile file = importFile(DIR, filename);
- Document doc = new Document(readFileToString(DIR+"/"+filename));
- TextSelection text = new TextSelection(doc, getLineColOffset(filename, lineCol), length);
- return new MakePrivateEntityPublicRefactoring(file, text);
- }
-
- private String readFileToString(final String path) throws IOException
- {
- FileInputStream stream = new FileInputStream(new File(path));
- return readStream(stream);
- }
-
- protected String readTestFile(String filename) throws IOException, URISyntaxException
- {
- return super.readTestFile(DIR, filename);
- }
-
- public void test() throws Exception
- {
- if(filename == null) return;
-
- doRefactoring();
- if(!shouldFailPreconditionCheck)
- assertEquals(
- sanitize(readTestFile(filename + ".result")),
- sanitize(readWorkspaceFile(filename)));
- }
-
- public String sanitize(String dirtyString)
- {
- return dirtyString.replaceAll("\r", "");
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/makeprivatepublic/MakePrivateEntityPublicTestSuite.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/makeprivatepublic/MakePrivateEntityPublicTestSuite.java
deleted file mode 100644
index b148bb1..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/makeprivatepublic/MakePrivateEntityPublicTestSuite.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.makeprivatepublic;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- *
- * @author Kurt Hendle
- */
-public class MakePrivateEntityPublicTestSuite extends TestSuite
-{
- public static Test suite() throws Exception
- {
- TestSuite suite = new TestSuite();
-
- //1. functionality test - multiple variables in list
- suite.addTest(successTest("priv1.f90",new LineCol(4,13), 1));
-
- //2. functionality test - single variable list (simply change private to public)
- suite.addTest(successTest("priv2.f90",new LineCol(5,13), 1));
-
- //3. functionality test - single variable, private statement in declaration attributes
- suite.addTest(successTest("test3.f90", new LineCol(3,25), 1));
-
- //4. functionality test - multiple variables, private statement in declaration attributes
- suite.addTest(successTest("test4.f90", new LineCol(3,22), 4));
-
- //5. functionality test - single var, private stmt and other attributes in declaration
- suite.addTest(successTest("test5.f90", new LineCol(3,35), 5));
-
- //6. functionality test - mult. vars., private stmt and other attributes in declaration
- suite.addTest(successTest("test6.f90", new LineCol(3,42), 4));
-
- //7. functionality test - private statement alone, all program entities private
- suite.addTest(successTest("test7.f90", new LineCol(6,23), 4));
- suite.addTest(successTest("test7_1.f90", new LineCol(6,23), 4));
-
- //8. precondition test - empty selection ""
- suite.addTest(preconditionTest("priv1.f90", new LineCol(3,13), 0));
-
- //9. precondition test - select variable which is not tagged private
- suite.addTest(preconditionTest("priv1.f90", new LineCol(3,16), 1));
- suite.addTest(preconditionTest("testFile1.f90", new LineCol(4,13), 1));
-
- //10. precondition test - select a public variable
- suite.addTest(preconditionTest("priv2.f90", new LineCol(6,12), 1));
- suite.addTest(preconditionTest("testFile1.f90", new LineCol(11,15), 1));
-
- //11. precondition test - test if possible to make definition public
- // NOTE: will fail til ScopingNode#canAddDefinition is added
- // FIXME JO suite.addTest(preconditionTest("main.f90", new LineCol(19,24), 8));
-
- //12. functionality test - subroutine/function made private by a lone private stmt
- suite.addTest(successTest("test12.f90", new LineCol(6,16), 6));
-
- //13 precondition test - subroutine/function not made private
- suite.addTest(preconditionTest("test13.f90", new LineCol(16,14), 3));
-
- return suite;
- }
-
- private static TestSuite successTest(String filename, LineCol position, int length)
- {
- TestSuite subSuite = new TestSuite("Making private variable public - " + filename);
- subSuite.addTest(new MakePrivateEntityPublicTestCase(filename, position, length, false));
- return subSuite;
- }
-
- private static TestSuite preconditionTest(String filename, LineCol position, int length)
- {
- TestSuite subSuite = new TestSuite("Testing preconditions for making private entity public - " +
- filename);
- subSuite.addTest(new MakePrivateEntityPublicTestCase(filename, position, length, true));
- return subSuite;
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/minonlylist/MinOnlyListTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/minonlylist/MinOnlyListTestCase.java
deleted file mode 100644
index c1f831e..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/minonlylist/MinOnlyListTestCase.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.minonlylist;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.nio.MappedByteBuffer;
-import java.nio.channels.FileChannel;
-import java.nio.charset.Charset;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.photran.core.vpg.util.LineCol;
-import org.eclipse.photran.internal.core.refactoring.MinOnlyListRefactoring;
-import org.eclipse.photran.refactoring.tests.RefactoringTestCase;
-
-/**
- *
- * @author Kurt Hendle
- */
-public class MinOnlyListTestCase extends RefactoringTestCase
-{
- private static final String DIR = "min-only-list-test-code";
-
- private static NullProgressMonitor pm = new NullProgressMonitor();
-
- protected String[] filenames;
- protected LineCol position;
- protected int length;
- protected boolean shouldFailPreconditionCheck;
- protected boolean shouldFailFinalPreCheck;
-
- public MinOnlyListTestCase() {;}
-
- public MinOnlyListTestCase(String[] filenames, LineCol position, int length, boolean shouldFailPreconditionCheck)
- {
- this.filenames = filenames;
- this.position = position;
- this.length = length;
- this.shouldFailPreconditionCheck = shouldFailPreconditionCheck;
- this.setName("test");
- }
-
- protected void doRefactoring() throws Exception
- {
- String description = "Attempting to minimize ONLY list.";
-
- MinOnlyListRefactoring refactoring = createRefactoring(filenames, position, length);
-
- RefactoringStatus status = refactoring.checkInitialConditions(pm);
-
- if(shouldFailPreconditionCheck)
- assertTrue(description + " failed initial precondition check: " + status.toString(), status.hasError());
-
- status = refactoring.checkFinalConditions(pm);
- if (shouldFailPreconditionCheck)
- { //no error will show up since nothing done in final check conditions
- assertTrue(description + "failed final precondition check: " + status.toString(), !status.hasError());
- }
- else
- {
- assertTrue(description + "should not fail final precondition check: " + status.toString(), !status.hasError());
-
- Change change = refactoring.createChange(pm);
- assertNotNull(description + " returned null Change object", change);
- assertTrue(description + " returned invalid Change object", change.isValid(pm).isOK());
- change.perform(pm);
- }
- }
-
- private MinOnlyListRefactoring createRefactoring(final String[] filenames, final LineCol lineCol, final int length) throws Exception
- {
- for (int i = 1; i < filenames.length; i++)
- importFile(DIR, filenames[i]);
-
- final IFile file = importFile(DIR, filenames[0]);
- Document doc = new Document(readFileToString(DIR+"/"+filenames[0]));
- TextSelection text = new TextSelection(doc, getLineColOffset(filenames[0], lineCol), length);
- return new MinOnlyListRefactoring(file, text);
- }
-
- private String readFileToString(final String path) throws IOException
- {
- FileInputStream stream = new FileInputStream(new File(path));
- return readStream(stream);
- }
-
- protected String readTestFile(String filename) throws IOException, URISyntaxException
- {
- return super.readTestFile(DIR, filename);
- }
-
- public void test() throws Exception
- {
- if(filenames == null) return;
-
- doRefactoring();
- if(!shouldFailPreconditionCheck)
- assertEquals(readTestFile(filenames[0] + ".result"), readWorkspaceFile(filenames[0]));
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/minonlylist/MinOnlyListTestSuite.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/minonlylist/MinOnlyListTestSuite.java
deleted file mode 100644
index c1809ec..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/minonlylist/MinOnlyListTestSuite.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.minonlylist;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- *
- * @author Kurt Hendle
- */
-public class MinOnlyListTestSuite extends TestSuite
-{
- public static Test suite() throws Exception
- {
- TestSuite suite = new TestSuite();
-
- //1. functionality test - all module entities used, remove list
- String[] test1Files = {"test1.f90", "module.f90"};
- // FIXME JO suite.addTest(successTest(test1Files, new LineCol(2,9), 6));
-
- //2. functionality test - remove the unused module entity from the list
- String[] test2Files = {"test2.f90", "module.f90"};
- // FIXME JO suite.addTest(successTest(test2Files, new LineCol(2,9), 6));
-
- //3. functionality test - no module entities used, remove the use statement
- String[] test3Files = {"test3.f90", "module.f90"};
- suite.addTest(successTest(test3Files, new LineCol(2,9), 6));
-
- //4. precondition test - select empty module name
- String[] test4and5Files = {"test4_5.f90", "module.f90"};
- suite.addTest(preconditionTest(test4and5Files, new LineCol(2,9), 0));
-
- //5. precondition test - empty module selected
- suite.addTest(preconditionTest(test4and5Files, new LineCol(3,9), 11));
-
- //6. precondition test - nonexistant module selected
- String[] test6Files = {"test6.f90", "module.f90"};
- suite.addTest(preconditionTest(test6Files, new LineCol(3,9), 11));
-
- //7. precondition test - select entity which is not module
- String[] test7Files = {"test7.f90", "module.f90"};
- suite.addTest(preconditionTest(test7Files, new LineCol(4,16), 1));
-
- return suite;
- }
-
- private static TestSuite successTest(String[] filenames, LineCol position, int length)
- {
- TestSuite subSuite = new TestSuite("Minimizing only List - " + filenames[0]);
- subSuite.addTest(new MinOnlyListTestCase(filenames, position, length, false));
- return subSuite;
- }
-
- private static TestSuite preconditionTest(String[] filenames, LineCol position, int length)
- {
- TestSuite subSuite = new TestSuite("Testing preconditions for minimizing only list - " +
- filenames[0]);
- subSuite.addTest(new MinOnlyListTestCase(filenames, position, length, true));
- return subSuite;
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/HugeFile.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/HugeFile.java
deleted file mode 100644
index 4886d19..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/HugeFile.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.projects;
-
-import java.io.ByteArrayInputStream;
-
-import junit.framework.TestCase;
-
-import org.eclipse.photran.internal.core.lexer.IAccumulatingLexer;
-import org.eclipse.photran.internal.core.lexer.LexerFactory;
-import org.eclipse.photran.internal.core.lexer.SourceForm;
-import org.eclipse.photran.internal.core.lexer.Terminal;
-import org.eclipse.photran.internal.core.lexer.preprocessor.fortran_include.IncludeLoaderCallback;
-import org.eclipse.photran.internal.core.parser.Parser;
-
-/**
- * These are meant to be used as performance tests. When this one of the test methods in this class is run standalone with
- * JVM arguments such as
- * <pre>-Xmx512M -Xrunhprof:cpu=samples,depth=5,file=/Users/joverbey/Desktop/java.hprof.txt</pre>,
- * the profile can be used to find bottlenecks in the lexer or parser code.
- *
- * @author Jeff Overbey
- */
-public class HugeFile extends TestCase
-{
- private String hugeFile = null;
-
- public void test() { /* Uncomment below */ }
-
-// public void setUp()
-// {
-// long start = System.currentTimeMillis();
-// StringBuilder sb = new StringBuilder();
-// sb.append("program p\n");
-// for (int i = 0; i < 30000; i++)
-// sb.append(" print *, 3+4*5\n");
-// //sb.append(" print *, \"----+----|----+----|----+----|----+----|----+----|----+----|----+----|----+----|\"\n");
-// sb.append("end");
-// hugeFile = sb.toString();
-// System.out.println("String building: " + (System.currentTimeMillis() - start));
-// }
-//
-// public void testLexHugeFile() throws Exception
-// {
-// ByteArrayInputStream in = new ByteArrayInputStream(hugeFile.getBytes());
-//
-// long start = System.currentTimeMillis();
-// IAccumulatingLexer lexer = LexerFactory.createLexer(in, "<stdin>", SourceForm.preprocessedFreeForm(new IncludeLoaderCallback(null)), true);
-// while (lexer.yylex().getTerminal() != Terminal.END_OF_INPUT)
-// ;
-// System.out.println("Lexing: " + (System.currentTimeMillis() - start));
-// }
-//
-// public void testParseHugeFile() throws Exception
-// {
-// ByteArrayInputStream in = new ByteArrayInputStream(hugeFile.getBytes());
-//
-// long start = System.currentTimeMillis();
-// IAccumulatingLexer lexer = LexerFactory.createLexer(in, "<stdin>", SourceForm.preprocessedFreeForm(new IncludeLoaderCallback(null)), true);
-// new Parser().parse(lexer);
-// System.out.println("Parsing: " + (System.currentTimeMillis() - start));
-// }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseFortran2003TestFiles.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseFortran2003TestFiles.java
deleted file mode 100644
index 7f3f4ea..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseFortran2003TestFiles.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.projects;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.MultiTestSuite;
-
-public class ParseFortran2003TestFiles
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new MultiTestSuite("fortran2003_tests", false, true) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectCollections.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectCollections.java
deleted file mode 100644
index 194f9c9..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectCollections.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.projects;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.MultiTestSuite;
-
-public class ParseProjectCollections
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new MultiTestSuite("../../org.eclipse.photran-projects.collections", false, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialArjanVanDijkAtmos.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialArjanVanDijkAtmos.java
deleted file mode 100644
index 6820af9..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialArjanVanDijkAtmos.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.projects;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.MultiTestSuite;
-
-public class ParseProjectConfidentialArjanVanDijkAtmos
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new MultiTestSuite("../../org.eclipse.photran-projects.confidential.arjan-van-dijk-atmos", false, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialAsteroids.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialAsteroids.java
deleted file mode 100644
index 0752f55..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialAsteroids.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.projects;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.MultiTestSuite;
-
-public class ParseProjectConfidentialAsteroids
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new MultiTestSuite("../../org.eclipse.photran-projects.confidential.asteroids", false, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialFMLIB.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialFMLIB.java
deleted file mode 100644
index f6510c1..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialFMLIB.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.projects;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.MultiTestSuite;
-
-public class ParseProjectConfidentialFMLIB
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new MultiTestSuite("../../org.eclipse.photran-projects.confidential.fmlib", false, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialFromTheWWW.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialFromTheWWW.java
deleted file mode 100644
index 200adbc..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialFromTheWWW.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.projects;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.MultiTestSuite;
-
-public class ParseProjectConfidentialFromTheWWW
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new MultiTestSuite("../../org.eclipse.photran-projects.confidential.from-the-www", false, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialIBEAMCppMod.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialIBEAMCppMod.java
deleted file mode 100644
index 02458bc..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialIBEAMCppMod.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.projects;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.MultiTestSuite;
-
-public class ParseProjectConfidentialIBEAMCppMod
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new MultiTestSuite("../../org.eclipse.photran-projects.confidential.ibeam-cpp-mod", false, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialLAPACK.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialLAPACK.java
deleted file mode 100644
index af7dcff..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialLAPACK.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.projects;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.MultiTestSuite;
-
-public class ParseProjectConfidentialLAPACK
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new MultiTestSuite("../../org.eclipse.photran-projects.confidential.lapack", true, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialNagleFortran2003.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialNagleFortran2003.java
deleted file mode 100644
index 8316c13..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialNagleFortran2003.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.projects;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.MultiTestSuite;
-
-public class ParseProjectConfidentialNagleFortran2003
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new MultiTestSuite("../../org.eclipse.photran-projects.confidential.nagle-fortran2003", false, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialPOP.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialPOP.java
deleted file mode 100644
index bd5a06b..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialPOP.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.projects;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.MultiTestSuite;
-
-public class ParseProjectConfidentialPOP
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new MultiTestSuite("../../org.eclipse.photran-projects.confidential.pop", false, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialWRF.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialWRF.java
deleted file mode 100644
index d2ec195..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialWRF.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.projects;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.MultiTestSuite;
-
-public class ParseProjectConfidentialWRF
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new MultiTestSuite("../../org.eclipse.photran-projects.confidential.wrf", false, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialWaltBrainerdFortran2003.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialWaltBrainerdFortran2003.java
deleted file mode 100644
index f528887..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialWaltBrainerdFortran2003.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.projects;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.MultiTestSuite;
-
-public class ParseProjectConfidentialWaltBrainerdFortran2003
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new MultiTestSuite("../../org.eclipse.photran-projects.confidential.walt-brainerd-fortran2003", false, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialWaltBrainerdTestSuiteFixed.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialWaltBrainerdTestSuiteFixed.java
deleted file mode 100644
index 7624881..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialWaltBrainerdTestSuiteFixed.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.projects;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.MultiTestSuite;
-
-public class ParseProjectConfidentialWaltBrainerdTestSuiteFixed
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new MultiTestSuite("../../org.eclipse.photran-projects.confidential.walt-brainerd-test-suite",
- true, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialWaltBrainerdTestSuiteFree.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialWaltBrainerdTestSuiteFree.java
deleted file mode 100644
index 62392b0..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectConfidentialWaltBrainerdTestSuiteFree.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.projects;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.MultiTestSuite;
-
-public class ParseProjectConfidentialWaltBrainerdTestSuiteFree
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new MultiTestSuite("../../org.eclipse.photran-projects.confidential.walt-brainerd-test-suite",
- false, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectString.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectString.java
deleted file mode 100644
index 62c2df2..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseProjectString.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.projects;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.MultiTestSuite;
-
-public class ParseProjectString
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new MultiTestSuite("../../org.eclipse.photran-projects.string", false, false) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseRefactoringTestFiles.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseRefactoringTestFiles.java
deleted file mode 100644
index 58e40a1..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseRefactoringTestFiles.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.projects;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.MultiTestSuite;
-
-public class ParseRefactoringTestFiles
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new MultiTestSuite("refactoring_test_files", false, true) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseRegressionTests.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseRegressionTests.java
deleted file mode 100644
index 3556c33..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseRegressionTests.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.projects;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.MultiTestSuite;
-
-public class ParseRegressionTests
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new MultiTestSuite("reg_tests", false, true) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseSamples.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseSamples.java
deleted file mode 100644
index 4e9f698..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/projects/ParseSamples.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.projects;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.internal.core.tests.MultiTestSuite;
-
-public class ParseSamples
-{
- public static Test suite() throws FileNotFoundException, IOException
- {
- return new MultiTestSuite("../../org.eclipse.photran-samples", false, true) {};
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/serialization/TestVPGSerializer.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/serialization/TestVPGSerializer.java
deleted file mode 100644
index a036b55..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/serialization/TestVPGSerializer.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.serialization;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.Serializable;
-
-import junit.framework.TestCase;
-
-import org.eclipse.photran.core.vpg.PhotranTokenRef;
-import org.eclipse.photran.core.vpg.PhotranVPGSerializer;
-import org.eclipse.photran.internal.core.analysis.binding.Definition;
-import org.eclipse.photran.internal.core.analysis.binding.Definition.Classification;
-import org.eclipse.photran.internal.core.analysis.types.DerivedType;
-import org.eclipse.photran.internal.core.analysis.types.FunctionType;
-import org.eclipse.photran.internal.core.analysis.types.Type;
-
-/**
- * Tests serialization and deserialization using the {@link PhotranVPGSerializer}
- *
- * @author Jeff Overbey
- */
-public class TestVPGSerializer extends TestCase
-{
- public void test() throws IOException
- {
- check(null);
-
- check("Hello");
- check("");
-
- check(3);
- check(100);
- check(-999);
- check(Integer.MAX_VALUE);
- check(Integer.MIN_VALUE);
-
- check(Type.INTEGER);
- check(Type.REAL);
- check(Type.DOUBLEPRECISION);
- check(Type.COMPLEX);
- check(Type.LOGICAL);
- check(Type.CHARACTER);
- check(Type.UNKNOWN);
- check(Type.VOID);
- check(Type.TYPE_ERROR);
- check(new PhotranTokenRef("/your/place/a.f90", -1, 0));
- check(new PhotranTokenRef("Test", 3, 5));
- check(new Definition("declaredName", new PhotranTokenRef("", -1, 0), Classification.ENUMERATOR, Type.INTEGER));
- check(new DerivedType("my_type"));
- check(new DerivedType("AnotherType"));
- check(new FunctionType("a_function"));
- check(new FunctionType("f"));
- }
-
- private void check(Serializable object) throws IOException
- {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
-
- PhotranVPGSerializer.serialize(object, out);
-
- ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
- Serializable deserializedObject = PhotranVPGSerializer.deserialize(in);
-
- assertEquals(object, deserializedObject);
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/x_cpreprocessor/CPreprocessorTests.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/x_cpreprocessor/CPreprocessorTests.java
deleted file mode 100644
index 3f61415..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/core/tests/x_cpreprocessor/CPreprocessorTests.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.internal.core.tests.x_cpreprocessor;
-
-import java.util.ArrayList;
-
-import junit.framework.TestCase;
-
-import org.eclipse.cdt.core.dom.ast.IASTComment;
-import org.eclipse.cdt.core.dom.ast.IASTFileLocation;
-import org.eclipse.cdt.core.dom.ast.IASTImageLocation;
-import org.eclipse.cdt.core.dom.ast.IASTPreprocessorMacroExpansion;
-import org.eclipse.cdt.core.dom.ast.IASTPreprocessorStatement;
-import org.eclipse.cdt.core.dom.parser.c.GCCScannerExtensionConfiguration;
-import org.eclipse.cdt.core.parser.CodeReader;
-import org.eclipse.cdt.core.parser.EndOfFileException;
-import org.eclipse.cdt.core.parser.IToken;
-import org.eclipse.cdt.core.parser.NullLogService;
-import org.eclipse.cdt.core.parser.OffsetLimitReachedException;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.ScannerInfo;
-import org.eclipse.cdt.internal.core.dom.NullCodeReaderFactory;
-import org.eclipse.cdt.internal.core.parser.scanner.CPreprocessor;
-import org.eclipse.cdt.internal.core.parser.scanner.ILocationResolver;
-
-/**
- *
- * @author joverbey
- */
-@SuppressWarnings("restriction")
-public class CPreprocessorTests extends TestCase
-{
- private static class MyToken
- {
- IToken token;
- boolean isPreprocessed;
- }
-
- public void test1() throws OffsetLimitReachedException
- {
-// String source =
-// "q\n#define HELLO w\n" +
-// "// Try this\n" +
-// "HELLO/* */ hh \"wo\" \"rld\" ??( HELLO ??)\n" +
-// " # define W(Z) #Z\n" +
-// "a W(bc) d e";
-//
-// CPreprocessor cpp = createCPP(source);
-// //cpp.setComputeImageLocations(true);
-// ArrayList<MyToken> toks = collectTokens(cpp);
-//
-// for (MyToken t : toks)
-// describe(cpp, t.token);
-//
-// for (IASTPreprocessorStatement s : cpp.getLocationMap().getAllPreprocessorStatements())
-// System.out.println(s + " - " + s.getFileLocation());
-//
-// int lastOffset = 0;
-// for (MyToken t : toks)
-// {
-// if (!t.isPreprocessed)
-// {
-// // This offset is actually a "sequence number" (which is affected
-// // by macro expansions and so forth)...
-// int midOffset = t.token.getOffset();
-// int nextOffset = t.token.getEndOffset();
-//
-// // ...which we have to map back to a location in the original file
-// IASTFileLocation fl = cpp.getLocationResolver().getMappedFileLocation(midOffset, nextOffset-midOffset);
-// midOffset = fl.getNodeOffset();
-// nextOffset = midOffset + fl.getNodeLength();
-//
-// System.err.print("[");
-// System.err.print(source.substring(lastOffset, midOffset));
-// System.err.print("|");
-// String textFromFile = source.substring(midOffset, nextOffset);
-// if (t.token.getImage().equals(textFromFile))
-// System.err.print(textFromFile);
-// else
-// System.err.print(textFromFile + "/" + t.token.getImage());
-// System.err.print("]");
-// lastOffset = nextOffset;
-// }
-// }
-// System.err.println();
-//
-// for (MyToken t : toks)
-// System.out.print(t.token.getImage() + " ");
-// }
-//
-// private ArrayList<MyToken> collectTokens(CPreprocessor cpp) throws OffsetLimitReachedException
-// {
-// ArrayList<MyToken> toks = new ArrayList<MyToken>();
-// for (;;)
-// {
-// MyToken t = new MyToken();
-// t.token = cpp.nextTokenRaw(); // gcc -E does not concatenate adjacent string literals
-//
-// if (t.token.getType() == IToken.tEND_OF_INPUT)
-// break;
-//
-// if (!cpp.isOnTopContext() || cpp.getLocationMap().getImageLocation(t.token.getOffset(), t.token.getLength()) == null)
-// t.isPreprocessed = true;
-// else
-// t.isPreprocessed = false;
-//
-// toks.add(t);
-// }
-// return toks;
-// }
-//
-// private void describe(CPreprocessor cpp, final IToken t)
-// {
-// System.out.println(t.getImage() + " --- " + t.getOffset() + "/" + t.getLength() + " --- " + t.getType() + " --- " + t.getClass().getName());
-//
-// ILocationResolver locMap = cpp.getLocationMap();
-// IASTImageLocation imgLoc = locMap.getImageLocation(t.getOffset(), t.getLength());
-// if (imgLoc != null)
-// System.out.println(imgLoc.getFileName() + " " + imgLoc.getNodeOffset() + "/" + imgLoc.getNodeLength() + " -- " + describeImageLocationKind(imgLoc.getLocationKind()));
-//
-// System.out.println(locMap.getUnpreprocessedSignature(imgLoc));
-// }
-//
-// private String describeImageLocationKind(int k)
-// {
-// switch (k)
-// {
-// case IASTImageLocation.REGULAR_CODE: return "REGULAR_CODE";
-// case IASTImageLocation.MACRO_DEFINITION: return "MACRO_DEFINITION";
-// case IASTImageLocation.ARGUMENT_TO_MACRO_EXPANSION: return "ARGUMENT_TO_MACRO_EXPANSION";
-// default: return Integer.toString(k);
-// }
-// }
-//
-// private CPreprocessor createCPP(String source)
-// {
-// return new CPreprocessor(new CodeReader(source.toCharArray()),
-// new ScannerInfo(), ParserLanguage.C, new NullLogService(),
-// new GCCScannerExtensionConfiguration(), NullCodeReaderFactory.getInstance());
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/Activator.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/Activator.java
deleted file mode 100644
index 69486e1..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/Activator.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests;
-
-import org.eclipse.core.runtime.Plugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator extends Plugin {
-
- // The plug-in ID
- public static final String PLUGIN_ID = "org.eclipse.photran.core.vpg.tests";
-
- // The shared instance
- private static Activator plugin;
-
- /**
- * The constructor
- */
- public Activator() {
- plugin = this;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)
- */
- public void start(BundleContext context) throws Exception {
- super.start(context);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
- */
- public void stop(BundleContext context) throws Exception {
- plugin = null;
- super.stop(context);
- }
-
- /**
- * Returns the shared instance
- *
- * @return the shared instance
- */
- public static Activator getDefault() {
- return plugin;
- }
-
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/BaseTestFramework.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/BaseTestFramework.java
deleted file mode 100644
index 5ee3917..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/BaseTestFramework.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * Markus Schorn (Wind River Systems)
- *******************************************************************************/
-
-/*
- * Created on Oct 4, 2004
- */
-package org.eclipse.photran.refactoring.tests;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
-import junit.framework.TestCase;
-
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.dom.IPDOMManager;
-import org.eclipse.cdt.core.model.ICProject;
-import org.eclipse.cdt.core.testplugin.CProjectHelper;
-import org.eclipse.cdt.core.testplugin.FileManager;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.photran.core.vpg.PhotranVPG;
-
-/**
- * Copied and modified from org.eclipse.cdt.core.tests.BaseTestFramework
- *
- * @author aniefer
- * @author Jeff Overbey - Modified so that every test case creates a new project
- * (hack to resolve weird file deletion problems in Windows)
- */
-abstract public class BaseTestFramework extends TestCase {
- static protected NullProgressMonitor monitor;
- static protected IWorkspace workspace;
- static protected IProject project;
- static protected ICProject cproject;
- static protected FileManager fileManager;
- static protected boolean indexDisabled=false;
-
- static int n = 0;
-
- static void initProject() {
- if (project != null) {
- return;
- }
- if( CCorePlugin.getDefault() != null && CCorePlugin.getDefault().getCoreModel() != null){
- //(CCorePlugin.getDefault().getCoreModel().getIndexManager()).reset();
- monitor = new NullProgressMonitor();
-
- workspace = ResourcesPlugin.getWorkspace();
-
- try {
- cproject = CProjectHelper.createCCProject("PhotranTestProject" + (++n), "bin", IPDOMManager.ID_NO_INDEXER); //$NON-NLS-1$ //$NON-NLS-2$
-
- project = cproject.getProject();
-
- /*project.setSessionProperty(SourceIndexer.activationKey, Boolean.FALSE );
- //Set the id of the source indexer extension point as a session property to allow
- //index manager to instantiate it
- project.setSessionProperty(IndexManager.indexerIDKey, sourceIndexerID);*/
-
-
-
- } catch ( CoreException e ) {
- /*boo*/
- }
- if (project == null)
- fail("Unable to create project"); //$NON-NLS-1$
-
- //Create file manager
- fileManager = new FileManager();
- }
- }
-
- public BaseTestFramework()
- {
- super();
- }
- /**
- * @param name
- */
- public BaseTestFramework(String name)
- {
- super(name);
- }
-
- public void cleanupProject() throws Exception {
- try{
- project.delete( true, false, monitor );
- } catch( Throwable e ){
- /*boo*/
- } finally {
- project= null;
- }
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- initProject();
- }
-
- protected void tearDown() throws Exception {
- if( project == null || !project.exists() )
- return;
-
-// IResource [] members = project.members();
-// for( int i = 0; i < members.length; i++ ){
-// if( members[i].getName().equals( ".project" ) || members[i].getName().equals( ".cproject" ) ) //$NON-NLS-1$ //$NON-NLS-2$
-// continue;
-// if (members[i].getName().equals(".settings"))
-// continue;
-// try{
-// members[i].delete( false, monitor );
-// } catch( Throwable e ){
-// /*boo*/
-// }
-// }
-
- try {
- project.delete(true, true, new NullProgressMonitor());
- } catch( Throwable e ){
- /* boo */
- project.close(new NullProgressMonitor());
- // To speed things up a bit and conserve memory...
- PhotranVPG.getInstance().releaseAllASTs();
- PhotranVPG.getDatabase().clearDatabase();
- }
- project = null;
- }
- protected IFile importFile(String fileName, String contents ) throws Exception{
- //Obtain file handle
- IFile file = project.getProject().getFile(fileName);
-
- InputStream stream = new ByteArrayInputStream( contents.getBytes() );
- //Create file input stream
- if( file.exists() )
- file.setContents( stream, false, false, monitor );
- else
- file.create( stream, false, monitor );
-
- fileManager.addFile(file);
-
- return file;
- }
-
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/RefactoringTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/RefactoringTestCase.java
deleted file mode 100644
index 9f1c027..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/RefactoringTestCase.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.photran.core.vpg.PhotranVPG;
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-public abstract class RefactoringTestCase extends BaseTestFramework
-{
- private static HashMap<String, ArrayList<Integer>> lineMaps = new HashMap<String, ArrayList<Integer>>();
-
- public RefactoringTestCase()
- {
- if (!PhotranVPG.inTestingMode()) fail("WHEN RUNNING JUNIT TESTS, THE \"TESTING\" ENVIRONMENT VARIABLE MUST BE SET");
- }
-
- protected IFile importFile(String srcDir, String filename) throws Exception
- {
- //project.getProject().getFile(filename).delete(true, new NullProgressMonitor());
- IFile result = super.importFile(filename, readTestFile(srcDir, filename));
- //project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
- return result;
- }
-
- protected String readTestFile(String srcDir, String filename) throws IOException, URISyntaxException
- {
- ArrayList<Integer> lineMap = new ArrayList<Integer>(50);
- lineMaps.put(filename, lineMap);
- lineMap.add(0); // Offset of line 1
- return readStream(lineMap, Activator.getDefault().getBundle().getResource(srcDir + "/" + filename).openStream());
- }
-
- protected String readStream(ArrayList<Integer> lineMap, InputStream inputStream) throws IOException
- {
- StringBuffer sb = new StringBuffer(4096);
- BufferedReader in = new BufferedReader(new InputStreamReader(inputStream));
- for (int offset = 0, ch = in.read(); ch >= 0; ch = in.read())
- {
- sb.append((char)ch);
- offset++;
-
- if (ch == '\n' && lineMap != null)
- {
- //System.out.println("Line " + (lineMap.size()+1) + " starts at offset " + offset);
- lineMap.add(offset);
- }
- }
- in.close();
- return sb.toString();
- }
-
- protected String readStream(InputStream inputStream) throws IOException
- {
- return readStream(null, inputStream);
- }
-
- protected String readWorkspaceFile(String filename) throws IOException, CoreException
- {
- return readStream(project.getFile(filename).getContents());
- }
-
- /**
- * @param filename
- * @param line line number, starting at 1
- * @param col column number, starting at 1
- */
- protected int getLineColOffset(String filename, LineCol lineCol)
- {
- return lineMaps.get(filename).get(lineCol.getLine()-1) + (lineCol.getCol()-1);
- }
-
- public void testLevenshtein()
- {
- assertEquals(0, levenshteinDistance("", ""));
- assertEquals(0, levenshteinDistance("kitten", "kitten"));
- assertEquals(6, levenshteinDistance("", "kitten"));
- assertEquals(6, levenshteinDistance("kitten", ""));
- assertEquals(3, levenshteinDistance("kitten", "sitting"));
- assertEquals(3, levenshteinDistance("kitten", "kit"));
- assertEquals(1, levenshteinDistance("kitten", "kittten"));
- assertEquals(2, levenshteinDistance("kitten", "kien"));
- }
-
- /**
- * Computes the Levenshtein distance between two strings.
- *
- * Based on pseudocode from http://en.wikipedia.org/wiki/Levenshtein_distance
- *
- * @return the Levenshtein distance between <code>s</code> and <code>t</code>
- */
- protected int levenshteinDistance(String s, String t)
- {
- int m = s.length(), n = t.length();
-
- int[][] d = new int[m+1][n+1];
-
- for (int i = 1; i <= m; i++)
- d[i][0] = i;
- for (int j = 1; j <= n; j++)
- d[0][j] = j;
-
- for (int i = 1; i <= m; i++)
- {
- for (int j = 1; j <= n; j++)
- {
- int cost = s.charAt(i-1) == t.charAt(j-1) ? 0 : 1;
- d[i][j] = min(d[i-1][j] + 1, // deletion
- d[i][j-1] + 1, // insertion
- d[i-1][j-1] + cost); // substitution
- }
- }
-
- return d[m][n];
- }
-
- private int min(int a, int b, int c)
- {
- return Math.min(Math.min(a, b), c);
- }
-
- protected void assertLevDist(String errorMessage, int expected, String s, String t)
- {
- int actual = levenshteinDistance(s, t);
-
- if (actual != expected)
- {
- // Use assertEquals so that JUnit will pop up a comparison viewer
- assertEquals("Unexpected Levenshtein distance " + actual + " (expected " + expected + ") " + errorMessage,
- s,
- t);
- }
- }
-
- /**
- * If the environment variables COMPILER and EXECUTABLE are set during the JUnit run,
- * compiles and runs the Fortran program being refactored and returns the output of
- * the compilation and execution. Otherwise, returns the empty string.
- * <p>
- * (This is intended to allow developers creating refactorings to test their refactorings
- * by actually compiling the code, while not forcing other developers to do so, since
- * it can be time-consuming. Tests should NOT assume that a compiler is available.)
- * <p>
- * This will compile the file(s) that are currently being refactored (i.e., the files
- * imported into the test project using {@link #importFile(String, String)}) into a
- * single executable, and then run that executable. This can be invoked before and
- * after a refactoring is performed to make sure runtime behavior is actually preserved
- * for the test program. If a specific ordering of the filenames is desired, it
- * must be passed as an argument to this method; otherwise, all *.f* resources in the
- * test project will be passed to the compiler in no specific order.
- * <p>
- * COMPILER must be set to the path of your Fortran compiler, e.g.,
- * /usr/local/gfortran/bin/gfortran
- * <p>
- * EXECUTABLE gives a path for the generated executable, e.g.,
- * /Users/joverbey/fortran-test-program.exe
- * <p>
- * The actual command line that is invoked is printed to standard output.
- * <p>
- * NOTE: Occasionally, the last part of the output from the Fortran program may seem to
- * be missing. (This may be a gfortran-specific problem.) You should include a
- * statement to manually flush the output to ensure that your test cases always pass.
- * In gfortran, you can "CALL FLUSH" to invoke the (proprietary) flush intrinsic; or
- * there is also a FLUSH statement in Fortran 2003.
- *
- * @return the output from the compiler and executable
- * @throws Exception
- */
- protected String compileAndRunFortranProgram(String... filenamesOpt) throws Exception
- {
- String compiler = System.getenv("COMPILER");
- if (compiler == null) return "";
-
- String exe = System.getenv("EXECUTABLE");
- if (exe == null) return "";
-
- ArrayList<String> args = new ArrayList<String>(8);
- args.add(compiler);
- args.add("-o");
- args.add(exe);
- if (filenamesOpt == null || filenamesOpt.length == 0)
- {
- for (IResource res : project.members())
- if (res instanceof IFile && res.getFileExtension().startsWith("f"))
- args.add(res.getName());
- }
- else
- {
- for (String filename : filenamesOpt)
- args.add(filename);
- }
-
- System.out.println(toString(args));
-
- ProcessBuilder builder = new ProcessBuilder(args);
- builder.directory(project.getLocation().toFile());
- builder.redirectErrorStream(true);
- Process process = builder.start();
- ConcurrentReader output = new ConcurrentReader(process.getInputStream());
- synchronized (output)
- {
- output.start();
- int exitCode = process.waitFor();
- if (exitCode != 0)
- fail("Compilation exited abnormally with exit code " + exitCode + "\n" + output.toString());
- waitFor(output);
- }
-
- builder = new ProcessBuilder(exe);
- builder.directory(project.getLocation().toFile());
- builder.redirectErrorStream(true);
- process = builder.start();
- ConcurrentReader output2 = new ConcurrentReader(process.getInputStream());
- synchronized (output2)
- {
- output2.start();
- int exitCode = process.waitFor();
- if (exitCode != 0)
- fail("Compilation succeeded, but execution exited abnormally with exit code " + exitCode + "\n" + output.toString() + "\n" + output2.toString());
- waitFor(output2);
- }
-
- return output.toString() + "\n" + output2.toString();
- }
-
- private void waitFor(ConcurrentReader output)
- {
- try
- {
- output.wait();
- }
- catch (InterruptedException e)
- {
- }
- }
-
- private String toString(ArrayList<String> args)
- {
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < args.size(); i++)
- sb.append((i == 0 ? "" : " ") + args.get(i));
- return sb.toString();
- }
-
- private static class ConcurrentReader extends Thread
- {
- private InputStream stdout;
- private StringBuilder sb;
-
- public ConcurrentReader(InputStream stdout)
- {
- this.stdout = stdout;
- this.sb = new StringBuilder();
- }
-
- @Override public void run()
- {
- BufferedReader in = new BufferedReader(new InputStreamReader(stdout));
- try
- {
- for (String line = in.readLine(); line != null; line = in.readLine())
- {
- sb.append(line);
- sb.append('\n');
- }
- done();
- }
- catch (IOException e)
- {
- sb.append(e.toString());
- }
- finally
- {
- try
- {
- in.close();
- }
- catch (IOException e)
- {
- sb.append(e.toString());
- }
- }
- }
-
- private synchronized void done()
- {
- notifyAll();
- }
-
- @Override public String toString()
- {
- return sb.toString();
- }
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/commonblockvarnames/CommonVarNamesTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/commonblockvarnames/CommonVarNamesTestCase.java
deleted file mode 100644
index 471997b..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/commonblockvarnames/CommonVarNamesTestCase.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.commonblockvarnames;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.nio.MappedByteBuffer;
-import java.nio.channels.FileChannel;
-import java.nio.charset.Charset;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.photran.core.vpg.util.LineCol;
-import org.eclipse.photran.internal.core.refactoring.CommonVarNamesRefactoring;
-import org.eclipse.photran.refactoring.tests.RefactoringTestCase;
-
-/**
- * Test case for the Make Common Variable Names Consistent refactoring
- *
- * @author Kurt Hendle
- * @author Jeff Overbey
- *
- * @see CommonVarNamesTestSuite
- */
-public class CommonVarNamesTestCase extends RefactoringTestCase
-{
- private static final String DIR = "make-common-var-names-consist-test-code";
-
- private static NullProgressMonitor pm = new NullProgressMonitor();
-
- protected String[] filenames;
- protected LineCol position;
- protected int length;
- protected boolean shouldFailPreconditionCheck;
- protected String[] newNames = null;
-
- public CommonVarNamesTestCase() {;}
-
- public CommonVarNamesTestCase(String[] filenames, LineCol position, int length, boolean shouldFailPreconditionCheck)
- {
- this(filenames, position, length, shouldFailPreconditionCheck, (String[])null);
- }
-
- public CommonVarNamesTestCase(String[] filenames, LineCol position, int length, boolean shouldFailPreconditionCheck,
- String... newNames)
- {
- this.filenames = filenames;
- this.position = position;
- this.length = length;
- this.shouldFailPreconditionCheck = shouldFailPreconditionCheck;
- this.newNames = newNames;
- this.setName("test");
- }
-
- /** very similar to the other refactoring tests */
- protected void doRefactoring() throws Exception
- {
- String description = "Attempting to make COMMON variables consistent throughout project.";
-
- CommonVarNamesRefactoring refactoring = createRefactoring(filenames, position, length);
-
-// project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
-// String before = compileAndRunFortranProgram();
-
- RefactoringStatus status = refactoring.checkInitialConditions(pm);
- assertTrue(description + " failed initial precondition check: " + status.toString(), !status.hasError());
-
- if(newNames != null)
- {
- for(int i=0; i<newNames.length; i++)
- refactoring.modifyNewName(i, newNames[i]);
- }
-
- status = refactoring.checkFinalConditions(pm);
- if (shouldFailPreconditionCheck)
- {
- assertTrue(description + " should have failed final precondition check: " + status.toString(), status.hasError());
- }
- else
- {
- assertTrue(description + " failed final precondition check: " + status.toString(), !status.hasError());
-
- Change change = refactoring.createChange(pm);
- assertNotNull(description + " returned null Change object", change);
- assertTrue(description + " returned invalid Change object", change.isValid(pm).isOK());
- change.perform(pm);
-
- // String after = compileAndRunFortranProgram();
- // System.out.println(after);
- // assertEquals(before, after);
- }
- }
-
- private CommonVarNamesRefactoring createRefactoring(final String[] filenames, final LineCol lineCol, final int length) throws Exception
- {
- for (int i = 1; i < filenames.length; i++)
- importFile(DIR, filenames[i]);
-
- final IFile file = importFile(DIR, filenames[0]);
- Document doc = new Document(readFileToString(DIR+"/"+filenames[0]));
- TextSelection text = new TextSelection(doc, getLineColOffset(filenames[0], lineCol), length);
- return new CommonVarNamesRefactoring(file, text);
- }
-
- private String readFileToString(final String path) throws IOException
- {
- FileInputStream stream = new FileInputStream(new File(path));
- return readStream(stream);
- }
-
- protected String readTestFile(String filename) throws IOException, URISyntaxException
- {
- return super.readTestFile(DIR, filename);
- }
-
- /**
- * Borrowed from IntroImplicitTestCase.java
- */
- public void test() throws Exception
- {
- if (filenames == null) return; // when JUnit invokes this outside a test suite
-
- doRefactoring();
- if (!shouldFailPreconditionCheck)
- {
- for (String filename : filenames)
- {
- assertEquals(readTestFile(filename + ".result"), // expected result
- readWorkspaceFile(filename)); // actual refactored file
- }
- }
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/commonblockvarnames/CommonVarNamesTestSuite.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/commonblockvarnames/CommonVarNamesTestSuite.java
deleted file mode 100644
index 3e68d11..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/commonblockvarnames/CommonVarNamesTestSuite.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.commonblockvarnames;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Tests for the Make Common Variable Names Consistent refactoring
- *
- * @author Kurt Hendle
- * @author Jeff Overbey
- */
-public class CommonVarNamesTestSuite extends TestSuite
-{
- public static Test suite() throws Exception
- {
- TestSuite suite = new TestSuite();
-
- // In the following, the line/column refers to a location in the first file listed
-
- // 1. Basic check across multiple files
- String[] test1Files = new String[] { "common1.f90", "common2.f90", "common3.f90", "common4.f90" };
- suite.addTest(successTest(test1Files, new LineCol(7,9), 5));
-
- //0. basic test with one file
- // -used to test the static data cleanup and implicit typing
- suite.addTest(successTest(new String[] {"justCommons1.f90"}, new LineCol(7,13), 5));
- suite.addTest(successTest(new String[] {"justCommons2.f90"}, new LineCol(2,13), 5));
-
- // 2. Basic check across multiple files with names provided
- String[] test2Files = new String[] { "namesProv1.f90", "namesProv2.f90" };
- suite.addTest(successTest(test2Files, new LineCol(3,13), 5, "a_hello", "b_hello", "c_hello"));
-
- //suite.addTest(successTest(new String[] {"justCommons1.f90"}, new LineCol(7,13), 5, "i_hello", "j_hello"));
-
- // 3. Two of the common block variable names should stay the same in one declaration of the common block
- String[] test3Files = new String[] { "sameName1.f90", "sameName2.f90" };
- // FIXME JO suite.addTest(successTest(test3Files, new LineCol(3,13), 5, "a", "b", "this_is_renamed"));
-
- // 4. One declaration of the common block does not contain all the variables in the block
- String[] test4Files = new String[] { "short1.f90" };
- suite.addTest(successTest(test4Files, new LineCol(4,11), 5, "aaa", "bbb", "ccc"));
- String[] test4Files2 = new String[] { "short2.f90" };
- suite.addTest(successTest(test4Files2, new LineCol(20,11), 5, "aaa", "bbb"));
-
- // 5. Precondition test -- make sure naming conflict is avoided
- String[] test5Files = new String[] { "common1.f90", "common2.f90", "common3.f90", "common4.f90" };
- // vvvvvv conflicts with a subroutine
- suite.addTest(preconditionTest(test5Files, new LineCol(7,9), 5, "a_hello", "helper", "c_hello"));
- // vvvvvvvvvvvv conflicts with a subroutine
- suite.addTest(preconditionTest(test5Files, new LineCol(7,9), 5, "help_common2", "b_hello", "c_hello"));
-
- // 6. Precondition tests -- the variables must have the same types in every declaration of the common block
- String[] test6Files = new String[] { "typesDiffer1.f90" };
- suite.addTest(preconditionTest(test6Files, new LineCol(4,11), 5));
- suite.addTest(preconditionTest(test6Files, new LineCol(20,11), 5));
- suite.addTest(preconditionTest(new String[]{"typesDiffer2.f90"}, new LineCol(2,12), 5));
-
- return suite;
- }
-
- private static TestSuite successTest(String[] filenames, LineCol position, int length)
- {
- return successTest(filenames, position, length, (String[])null);
- }
-
- private static TestSuite successTest(String[] filenames, LineCol position, int length, String... newVarNames)
- {
- TestSuite subSuite = new TestSuite("Making COMMON variable names consistent - " + filenames[0]);
- subSuite.addTest(new CommonVarNamesTestCase(filenames, position, length, false, newVarNames));
- return subSuite;
- }
-
- private static TestSuite preconditionTest(String[] filenames, LineCol position, int length, String... newVarNames)
- {
- TestSuite subSuite = new TestSuite("Testing preconditions for making COMMON variable names consistent - " +
- filenames[0]);
- subSuite.addTest(new CommonVarNamesTestCase(filenames, position, length, true, newVarNames));
- return subSuite;
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/encapsulatevariable/EncapsulateVariableFailTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/encapsulatevariable/EncapsulateVariableFailTestCase.java
deleted file mode 100644
index a2c7772..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/encapsulatevariable/EncapsulateVariableFailTestCase.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.encapsulatevariable;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.photran.core.vpg.util.LineCol;
-import org.eclipse.photran.internal.core.refactoring.EncapsulateVariableRefactoring;
-
-/**
- *
- * @author Tim
- */
-public class EncapsulateVariableFailTestCase extends EncapsulateVariableTestCase
-{
- private ArrayList<String> myFailFilenames;
- private String failSelectionFile;
- private ITextSelection failSelection;
- private boolean isFatal;
-
- public EncapsulateVariableFailTestCase(){;}
-
- public EncapsulateVariableFailTestCase(ArrayList<String> fNames, String selectionfName, boolean isFatal, Object ignore)
- {
- super(fNames, selectionfName, ignore);
- myFailFilenames = fNames;
- failSelectionFile = selectionfName;
- this.isFatal = isFatal;
- }
-
- @Override
- protected void setSelection(String fContent, String filename)
- {
- int startOffset = fContent.indexOf("!") + 1;
- int endOffset = fContent.indexOf(System.getProperty("line.separator"), startOffset);
- if(endOffset <= 0)
- endOffset = fContent.indexOf("\n", startOffset);
-
- String infoString = fContent.substring(startOffset, endOffset);
- String [] res = infoString.split(",");
-
- if(res.length < 3 || res.length > 3)
- throw new Error("Malformed test case");
-
- int line = Integer.parseInt(res[0]);
- int col = Integer.parseInt(res[1]);
- int length = Integer.parseInt(res[2]);
-
- LineCol lineCol = new LineCol(line, col);
-
- int actualOffset = getLineColOffset(filename, lineCol);
-
- failSelection = new TextSelection(actualOffset, length);
- }
-
- @Override
- protected void doRefactoring() throws Exception
- {
- IFile selFile = getFileAndSetSelection(DIR, failSelectionFile);
-
- for(String fName : myFailFilenames)
- {
- getFile(DIR, fName);
- }
-
- project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
- String before = compileAndRunFortranProgram();
-
- EncapsulateVariableRefactoring refactoring = new EncapsulateVariableRefactoring(selFile, failSelection);
-
- String description = "Attempt to encapsulate variables in " + failSelectionFile;
-
- RefactoringStatus status = refactoring.checkAllConditions(new NullProgressMonitor());
- if(isFatal)
- assertTrue(status.hasFatalError());
- else
- assertTrue(status.hasError());
- }
-
- public void test() throws Exception
- {
- if(myFailFilenames == null)
- return;
-
- doRefactoring();
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/encapsulatevariable/EncapsulateVariableTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/encapsulatevariable/EncapsulateVariableTestCase.java
deleted file mode 100644
index bc26cc9..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/encapsulatevariable/EncapsulateVariableTestCase.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.encapsulatevariable;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.photran.core.vpg.util.LineCol;
-import org.eclipse.photran.internal.core.refactoring.EncapsulateVariableRefactoring;
-import org.eclipse.photran.refactoring.tests.RefactoringTestCase;
-
-/**
- *
- * @author Tim
- */
-public class EncapsulateVariableTestCase extends RefactoringTestCase
-{
- private ArrayList<String> myFilenames;
- private String selectionFile;
- public static final String DIR = "encapsulate-variable-test-code";
- private ITextSelection selection;
- private NullProgressMonitor pm = new NullProgressMonitor();
-
- public EncapsulateVariableTestCase(){;}
-
- public EncapsulateVariableTestCase(ArrayList<String> fNames, String selectionfName, Object ignore)
- {
- myFilenames = fNames;
- selectionFile = selectionfName;
- this.setName("test");
- }
-
- protected void doRefactoring() throws Exception
- {
- IFile selFile = getFileAndSetSelection(DIR, selectionFile);
-
- for(String fName : myFilenames)
- {
- getFile(DIR, fName);
- }
-
- project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
- String before = compileAndRunFortranProgram();
-
- EncapsulateVariableRefactoring refactoring = new EncapsulateVariableRefactoring(selFile, selection);
-
- String description = "Attempt to encapsulate variables in " + selectionFile;
- RefactoringStatus status = refactoring.checkInitialConditions(pm);
- assertTrue(description + " failed initial precondition check: " + status.toString(), !status.hasError());
-
- status = refactoring.checkFinalConditions(pm);
- assertTrue(description + " failed final precondition check: " + status.toString(), !status.hasError());
-
- Change change = refactoring.createChange(pm);
- assertNotNull(description + " returned null Change object", change);
- assertTrue(description + " returned invalid Change object", change.isValid(pm).isOK());
- change.perform(pm);
-
- project.refreshLocal(IResource.DEPTH_INFINITE, pm);
-
- String after = compileAndRunFortranProgram();
- System.out.println(after);
- assertEquals(before, after);
- }
-
- protected IFile getFile(String dir, String fName) throws Exception
- {
- String text = super.readTestFile(DIR, fName);
- return importFile(dir, fName);
- }
-
- protected IFile getFileAndSetSelection(String dir, String fName) throws Exception
- {
- String text = super.readTestFile(DIR, fName);
- setSelection(text, fName);
- return importFile(dir, fName);
- }
-
- protected String readTestFile(String filename) throws IOException, URISyntaxException
- {
- return super.readTestFile(DIR, filename);
- }
-
- protected void setSelection(String fContent, String filename)
- {
- int startOffset = fContent.indexOf("!") + 1;
- int endOffset = fContent.indexOf(System.getProperty("line.separator"), startOffset);
- if(endOffset <= 0)
- endOffset = fContent.indexOf("\n", startOffset);
-
- String infoString = fContent.substring(startOffset, endOffset);
- String [] res = infoString.split(",");
-
- if(res.length < 3 || res.length > 3)
- throw new Error("Malformed test case");
-
- int line = Integer.parseInt(res[0]);
- int col = Integer.parseInt(res[1]);
- int length = Integer.parseInt(res[2]);
-
- LineCol lineCol = new LineCol(line, col);
-
- int actualOffset = getLineColOffset(filename, lineCol);
-
- selection = new TextSelection(actualOffset, length);
- }
-
- /*protected String readTestFile(String filename) throws IOException, URISyntaxException
- {
- return super.readTestFile(DIR, filename);
- }*/
-
- public void test() throws Exception
- {
- if (myFilenames == null) return; // when JUnit invokes this outside a test suite
-
- doRefactoring();
- String expected = readTestFile(selectionFile + ".result");
- String actual = readWorkspaceFile(selectionFile);
-
- assertEquals(sanitize(expected), sanitize(actual));
-
- for(String fName : myFilenames)
- {
- String loopExpected = readTestFile(fName + ".result");
- String loopActual = readWorkspaceFile(fName);
- assertEquals(sanitize(loopExpected), sanitize(loopActual));
- }
- }
-
- public String sanitize(String dirtyString)
- {
- return dirtyString.replaceAll("\r", "");
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/encapsulatevariable/EncapsulateVariableTestSuite.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/encapsulatevariable/EncapsulateVariableTestSuite.java
deleted file mode 100644
index 60a0bb0..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/encapsulatevariable/EncapsulateVariableTestSuite.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.encapsulatevariable;
-
-import java.util.ArrayList;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- *
- * @author Tim
- */
-public class EncapsulateVariableTestSuite extends TestSuite
-{
- public static Test suite()
- {
- TestSuite suite = new TestSuite();
- ArrayList<String> lst1 = new ArrayList<String>();
- lst1.add("module1.f90");
-
- ArrayList<String> emptyList = new ArrayList<String>();
-
- //Pass pass
- suite.addTest(getSuiteFor(lst1, "test-simple01.f90"));
- suite.addTest(getSuiteFor(emptyList, "test-encap-01a-basic-integer.f90"));
- suite.addTest(getSuiteFor(emptyList, "test-encap-01b-basic-real.f90"));
- suite.addTest(getSuiteFor(emptyList, "test-encap-01c-basic-dt.f90"));
- suite.addTest(getSuiteFor(emptyList, "test-encap-02-contains.f90"));
- suite.addTest(getSuiteFor(emptyList, "test-encap-03-expr.f90"));
-
- //Fail pass
- suite.addTest(getFatalFailSuite(emptyList, "test-encap-04-nosetter-parameter.f90"));
- suite.addTest(getFatalFailSuite(emptyList, "test-encap-06a-fail-array.f90"));
- suite.addTest(getFatalFailSuite(emptyList, "test-encap-06c-fail-allocatable1.f90"));
- suite.addTest(getFatalFailSuite(emptyList, "test-encap-06d-fail-allocatable2.f90"));
- suite.addTest(getFatalFailSuite(emptyList, "test-encap-06b-fail-pointer.f90"));
- suite.addTest(getFatalFailSuite(emptyList, "test-encap-06e-fail-target.f90"));
- suite.addTest(getNonFatalFailSuite(emptyList, "test-encap-05a-fail-conflict.f90"));
-
-
- return suite;
- }
-
- public static TestSuite getSuiteFor(ArrayList<String> fNames, String selectionFile)
- {
- TestSuite subSuite = new TestSuite("Encapsulate variable in " + selectionFile);
- subSuite.addTest(new EncapsulateVariableTestCase(fNames, selectionFile, null));
- return subSuite;
- }
-
- public static TestSuite getFatalFailSuite(ArrayList<String> fNames, String selectionFile)
- {
- TestSuite subSuite = new TestSuite("Encapsulate variable in " + selectionFile);
- subSuite.addTest(new EncapsulateVariableFailTestCase(fNames, selectionFile, true, null));
- return subSuite;
- }
-
- public static TestSuite getNonFatalFailSuite(ArrayList<String> fNames, String selectionFile)
- {
- TestSuite subSuite = new TestSuite("Encapsulate variable in " + selectionFile);
- subSuite.addTest(new EncapsulateVariableFailTestCase(fNames, selectionFile, false, null));
- return subSuite;
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/extractprocedure/ExtractProcTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/extractprocedure/ExtractProcTestCase.java
deleted file mode 100644
index f244f92..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/extractprocedure/ExtractProcTestCase.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.extractprocedure;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.photran.internal.core.refactoring.ExtractProcedureRefactoring;
-import org.eclipse.photran.refactoring.tests.RefactoringTestCase;
-
-public class ExtractProcTestCase extends RefactoringTestCase
-{
- private static final String DIR = "extract-proc-test-code";
-
- private static NullProgressMonitor pm = new NullProgressMonitor();
-
- protected String filename = null;
- protected ITextSelection selectionToExtract = null;
-
- public ExtractProcTestCase() {;} // when JUnit invokes a subclass outside a test suite
-
- public ExtractProcTestCase(String filename, Object ignored) // avoid JUnit constructor
- {
- this.filename = filename;
- this.setName("test");
- }
-
- protected void doRefactoring() throws Exception
- {
- String description = "Attempt to extract procedure from " + filename;
-
- ExtractProcedureRefactoring refactoring = createRefactoring(filename);
-
- project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
- String before = compileAndRunFortranProgram();
-
- RefactoringStatus status = refactoring.checkInitialConditions(pm);
- assertTrue(description + " failed initial precondition check: " + status.toString(), !status.hasError());
-
- refactoring.setName("new_procedure");
-
- status = refactoring.checkFinalConditions(pm);
- assertTrue(description + " failed final precondition check: " + status.toString(), !status.hasError());
-
- Change change = refactoring.createChange(pm);
- assertNotNull(description + " returned null Change object", change);
- assertTrue(description + " returned invalid Change object", change.isValid(pm).isOK());
- change.perform(pm);
-
- project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
-
- String after = compileAndRunFortranProgram();
- System.out.println(after);
- assertEquals(before, after);
- }
-
- private ExtractProcedureRefactoring createRefactoring(final String filename) throws Exception
- {
- final IFile thisFile = importFile(DIR, filename);
- return new ExtractProcedureRefactoring(thisFile, selectionToExtract);
- }
-
- @Override protected String readTestFile(String srcDir, String filename) throws IOException, URISyntaxException
- {
- String result = super.readTestFile(srcDir, filename);
-
- int startOffset = result.lastIndexOf('\n', result.indexOf("!<<<<<START")) + 1;
- int endOffset = result.indexOf("!<<<<<END");
- if (startOffset <= 0 || endOffset < 0 || endOffset <= startOffset)
- throw new Error("Malformed test case");
-
- selectionToExtract = new TextSelection(startOffset, endOffset-startOffset);
-
- return result;
- }
-
- protected String readTestFile(String filename) throws IOException, URISyntaxException
- {
- return super.readTestFile(DIR, filename);
- }
-
- /**
- * Given an array with all of the positions of identifiers that should be renamed together, try applying the Rename refactoring to
- * each, and make sure all the others change with it.
- */
- public void test() throws Exception
- {
- if (filename == null) return; // when JUnit invokes this outside a test suite
-
- doRefactoring();
- assertEquals(
- readTestFile(filename + ".result").replaceAll("\\r", ""), // expected result
- readWorkspaceFile(filename).replaceAll("\\r", "")); // actual refactored file
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/extractprocedure/ExtractProcTestSuite.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/extractprocedure/ExtractProcTestSuite.java
deleted file mode 100644
index 590ce69..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/extractprocedure/ExtractProcTestSuite.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.extractprocedure;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class ExtractProcTestSuite extends TestSuite
-{
- public static Test suite() throws Exception
- {
- TestSuite suite = new TestSuite();
- suite.addTest(getSuiteFor("test01-simple.f90"));
- suite.addTest(getSuiteFor("test02-locals.f90"));
- suite.addTest(getSuiteFor("test03-locals2.f90"));
- suite.addTest(getSuiteFor("test04-in-loop.f90"));
- suite.addTest(getSuiteFor("test05-parameter.f90"));
- suite.addTest(getSuiteFor("test06-parameter.f90"));
- suite.addTest(getSuiteFor("test07-attribs.f90"));
- return suite;
- }
-
- private static TestSuite getSuiteFor(String baseFilename)
- {
- TestSuite subSuite = new TestSuite("Extracting Procedures from " + baseFilename);
- subSuite.addTest(new ExtractProcTestCase(baseFilename, null));
- return subSuite;
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/infrastructure/CheckCanAddDeclTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/infrastructure/CheckCanAddDeclTestCase.java
deleted file mode 100644
index f2c56e1..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/infrastructure/CheckCanAddDeclTestCase.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.infrastructure;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.photran.core.IFortranAST;
-import org.eclipse.photran.core.vpg.PhotranVPG;
-import org.eclipse.photran.internal.core.parser.ASTMainProgramNode;
-import org.eclipse.photran.internal.core.parser.ASTModuleNode;
-import org.eclipse.photran.internal.core.parser.ASTSubroutineSubprogramNode;
-import org.eclipse.photran.internal.core.refactoring.infrastructure.AbstractFortranRefactoring;
-import org.eclipse.photran.refactoring.tests.RefactoringTestCase;
-
-/**
- * Unit tests for {@link PhotranVPG#listAllModules()}
- *
- * @author Jeff Overbey
- */
-public class CheckCanAddDeclTestCase extends RefactoringTestCase
-{
- private static final String DIR = "check-can-add-test-code";
-
- private ASTMainProgramNode mainProgram;
- private ASTSubroutineSubprogramNode internalSubroutine;
- private ASTModuleNode module;
-
- @Override public void setUp() throws Exception
- {
- super.setUp();
-
- IFile main_f90 = importFile(DIR, "main.f90");
- IFile module_f90 = importFile(DIR, "module.f90");
- importFile(DIR, "external.f90");
- PhotranVPG.getInstance().ensureVPGIsUpToDate(new NullProgressMonitor());
-
- project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
- compileAndRunFortranProgram("module.f90", "main.f90", "external.f90");
-
- PhotranVPG vpg = PhotranVPG.getInstance();
- IFortranAST mainFileAST = vpg.acquireTransientAST(main_f90);
- IFortranAST moduleFileAST = vpg.acquireTransientAST(module_f90);
- assertNotNull(mainFileAST);
- assertNotNull(moduleFileAST);
-
- mainProgram = mainFileAST.findFirstTokenOnLine(1).findNearestAncestor(ASTMainProgramNode.class);
- internalSubroutine = mainFileAST.findFirstTokenOnLine(23).findNearestAncestor(ASTSubroutineSubprogramNode.class);
- module = moduleFileAST.findFirstTokenOnLine(1).findNearestAncestor(ASTModuleNode.class);
- assertNotNull(mainProgram);
- assertNotNull(internalSubroutine);
- assertNotNull(module);
- }
-
- public void testAddDeclsToMainProgram() throws Exception
- {
- new FauxFortranRefactoring()
- {
- protected void runTest()
- {
- assertTrue(canAdd("something_new"));
- assertFalse(canAdd("assigned_local_variable"));
- assertFalse(canAdd("AsSiGnEd_LoCaL_vArIaBlE"));
- assertFalse(canAdd("unused_local_variable"));
- assertFalse(canAdd("local_variable_accessed_from_internal_subroutine"));
- assertFalse(canAdd("defined_external_subroutine"));
- assertFalse(canAdd("declared_external_subroutine"));
- assertFalse(canAdd("undeclared_external_subroutine"));
- assertFalse(canAdd("internal_subroutine"));
- assertFalse(canAdd("used_module_subroutine"));
- assertFalse(canAdd("unused_module_subroutine"));
- assertTrue(canAdd("private_module_subroutine"));
- }
-
- private boolean canAdd(String name)
- {
- return checkIfDeclarationCanBeAddedToScope(name, mainProgram, new NullProgressMonitor());
- }
- }.runTest();
- }
-
- public void testAddDeclsToModule() throws Exception
- {
- new FauxFortranRefactoring()
- {
- protected void runTest()
- {
- assertFalse(canAdd("private_module_subroutine"));
-
- // These are the same as above, since declaring these in the module
- // will cause them to be imported into the main program, preventing
- // the main program from redeclaring them
-
- assertTrue(canAdd("something_new"));
- assertFalse(canAdd("assigned_local_variable"));
- assertFalse(canAdd("AsSiGnEd_LoCaL_vArIaBlE"));
- assertFalse(canAdd("unused_local_variable"));
- assertFalse(canAdd("local_variable_accessed_from_internal_subroutine"));
- // FIXME assertFalse(canAdd("defined_external_subroutine"));
- assertFalse(canAdd("declared_external_subroutine"));
- assertFalse(canAdd("undeclared_external_subroutine"));
- assertFalse(canAdd("internal_subroutine"));
- assertFalse(canAdd("used_module_subroutine"));
- assertFalse(canAdd("unused_module_subroutine"));
- }
-
- private boolean canAdd(String name)
- {
- return checkIfDeclarationCanBeAddedToScope(name, module, new NullProgressMonitor());
- }
- }.runTest();
- }
-
- public void testAddDeclsToInternalSubprogram() throws Exception
- {
- new FauxFortranRefactoring()
- {
- protected void runTest()
- {
- assertTrue(canAdd("something_new"));
- assertFalse(canAdd("internal_subroutine"));
- assertFalse(canAdd("local_variable_accessed_from_internal_subroutine"));
- assertTrue(canAdd("private_module_subroutine"));
-
- // These will shadow declarations in an outer scope, but since they're not
- // referenced, that is OK
- assertTrue(canAdd("assigned_local_variable"));
- assertTrue(canAdd("AsSiGnEd_LoCaL_vArIaBlE"));
- assertTrue(canAdd("unused_local_variable"));
- assertTrue(canAdd("defined_external_subroutine"));
- assertTrue(canAdd("declared_external_subroutine"));
- assertTrue(canAdd("undeclared_external_subroutine"));
- assertTrue(canAdd("used_module_subroutine"));
- assertTrue(canAdd("unused_module_subroutine"));
- }
-
- private boolean canAdd(String name)
- {
- return checkIfDeclarationCanBeAddedToScope(name, internalSubroutine, new NullProgressMonitor());
- }
- }.runTest();
- }
-
- /**
- * This is intended to be subclassed in order to gain access to the protected methods of
- * {@link AbstractFortranRefactoring} to test those methods.
- *
- * @author Jeff Overbey
- */
- private class FauxFortranRefactoring extends AbstractFortranRefactoring
- {
- public FauxFortranRefactoring()
- {
- this.vpg = PhotranVPG.getInstance();
- }
-
- @Override
- protected void doCheckInitialConditions(RefactoringStatus status, IProgressMonitor pm)
- throws PreconditionFailure
- {
- }
-
- @Override
- protected void doCheckFinalConditions(RefactoringStatus status, IProgressMonitor pm)
- throws PreconditionFailure
- {
- }
-
- @Override
- protected void doCreateChange(IProgressMonitor pm) throws CoreException, OperationCanceledException
- {
- }
-
- @Override
- protected void ensureProjectHasRefactoringEnabled(RefactoringStatus status) throws PreconditionFailure
- {
- }
-
- @Override
- protected RefactoringStatus getAbstractSyntaxTree(RefactoringStatus status)
- {
- return null;
- }
-
- @Override
- public String getName()
- {
- return null;
- }
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/infrastructure/ReindenterTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/infrastructure/ReindenterTestCase.java
deleted file mode 100644
index e8c0366..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/infrastructure/ReindenterTestCase.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.infrastructure;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.photran.core.IFortranAST;
-import org.eclipse.photran.core.vpg.PhotranVPG;
-import org.eclipse.photran.internal.core.refactoring.infrastructure.Reindenter;
-import org.eclipse.photran.internal.core.refactoring.infrastructure.SourcePrinter;
-import org.eclipse.photran.internal.core.refactoring.infrastructure.Reindenter.Strategy;
-import org.eclipse.photran.refactoring.tests.RefactoringTestCase;
-
-public class ReindenterTestCase extends RefactoringTestCase
-{
- private static final String DIR = "reindenter-test-code";
-
- protected String filename = null;
- protected Strategy strategy;
- private int fromLine;
- private int thruLine;
-
- public ReindenterTestCase() {;} // when JUnit invokes a subclass outside a test suite
-
- public ReindenterTestCase(String filename, Strategy strategy)
- {
- this.filename = filename;
- this.strategy = strategy;
- this.setName("test");
- }
-
- public void test() throws Exception
- {
- if (filename == null) return; // when JUnit invokes this outside a test suite
-
- final IFile thisFile = importFile(DIR, filename);
-
- IFortranAST ast = PhotranVPG.getInstance().acquireTransientAST(thisFile);
- assertNotNull(ast);
-
- Reindenter.reindent(fromLine, thruLine, ast, strategy);
-
- thisFile.setContents(
- new ByteArrayInputStream(SourcePrinter.getSourceCodeFromAST(ast).getBytes()),
- true,
- false,
- new NullProgressMonitor());
-
- project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
-
- assertEquals(
- readTestFile(filename + ".result"), // expected result
- readWorkspaceFile(filename)); // actual refactored file
- }
-
- @Override protected String readTestFile(String srcDir, String filename) throws IOException, URISyntaxException
- {
- String result = super.readTestFile(srcDir, filename);
-
- int startOffset = result.lastIndexOf('\n', result.indexOf("!<<<<<START")) + 1;
- int endOffset = result.indexOf("!<<<<<END");
- if (startOffset < 0 || endOffset < 0 || endOffset <= startOffset)
- throw new Error("Malformed test case");
-
- determineLinesFromOffsets(result, startOffset, endOffset);
-
- return result;
- }
-
- private void determineLinesFromOffsets(String result, int startOffset, int endOffset)
- {
- int line = 1;
-
- for (int i = 0; i < result.length(); i++)
- {
- if (i == startOffset)
- this.fromLine = line;
-
- if (i == endOffset)
- this.thruLine = line;
-
- if (result.charAt(i) == '\n')
- line++;
- }
- }
-
- protected String readTestFile(String filename) throws IOException, URISyntaxException
- {
- return super.readTestFile(DIR, filename);
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/infrastructure/ReindenterTestSuite.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/infrastructure/ReindenterTestSuite.java
deleted file mode 100644
index d88fc9d..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/infrastructure/ReindenterTestSuite.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.infrastructure;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.photran.internal.core.refactoring.infrastructure.Reindenter.Strategy;
-
-public class ReindenterTestSuite extends TestSuite
-{
- public static Test suite() throws Exception
- {
- TestSuite suite = new TestSuite();
- suite.addTest(getSuiteFor("01-simple.f90", Strategy.SHIFT_ENTIRE_BLOCK));
- suite.addTest(getSuiteFor("02-end-after.f90", Strategy.SHIFT_ENTIRE_BLOCK));
- suite.addTest(getSuiteFor("03-blank-after.f90", Strategy.SHIFT_ENTIRE_BLOCK));
- suite.addTest(getSuiteFor("04-guess-indent.f90", Strategy.SHIFT_ENTIRE_BLOCK));
- suite.addTest(getSuiteFor("05-eachline-test.f90", Strategy.REINDENT_EACH_LINE));
- //suite.addTest(getSuiteFor("0.f90", Strategy));
- return suite;
- }
-
- private static TestSuite getSuiteFor(String baseFilename, Strategy strategy)
- {
- TestSuite subSuite = new TestSuite("Reindenting " + baseFilename);
- subSuite.addTest(new ReindenterTestCase(baseFilename, strategy));
- return subSuite;
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/interchangeloops/InterchangeLoopsTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/interchangeloops/InterchangeLoopsTestCase.java
deleted file mode 100644
index 6f209ce..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/interchangeloops/InterchangeLoopsTestCase.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.interchangeloops;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.photran.core.vpg.PhotranVPG;
-import org.eclipse.photran.internal.core.refactoring.ExtractProcedureRefactoring;
-import org.eclipse.photran.internal.core.refactoring.InterchangeLoopsRefactoring;
-import org.eclipse.photran.internal.core.refactoring.IntroImplicitNoneRefactoring;
-import org.eclipse.photran.internal.core.refactoring.RenameRefactoring;
-import org.eclipse.photran.refactoring.tests.RefactoringTestCase;
-
-/**
- *
- * @author Tim
- */
-public class InterchangeLoopsTestCase extends RefactoringTestCase
-{
- private String myFilename = null;
- private NullProgressMonitor pm = new NullProgressMonitor();
- private ITextSelection selection = null;
- private static final String DIR = "interchange-loops-test-code";
-
- public InterchangeLoopsTestCase(){;}
-
- public InterchangeLoopsTestCase(String filename, Object ignore)
- {
- this.myFilename = filename;
- this.setName("test");
- }
-
- protected void doRefactoring() throws Exception
- {
- String description = "Attempt to interchange loops in " + myFilename;
-
- InterchangeLoopsRefactoring refactoring = createRefactoring(myFilename);
-
- RefactoringStatus status = refactoring.checkInitialConditions(pm);
- assertTrue(description + " failed initial precondition check: " + status.toString(), !status.hasError());
-
- status = refactoring.checkFinalConditions(pm);
- assertTrue(description + " failed final precondition check: " + status.toString(), !status.hasError());
-
- Change change = refactoring.createChange(pm);
- assertNotNull(description + " returned null Change object", change);
- assertTrue(description + " returned invalid Change object", change.isValid(pm).isOK());
- change.perform(pm);
-
- project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
- }
-
- protected InterchangeLoopsRefactoring createRefactoring(String filename) throws Exception
- {
- final IFile thisFile = importFile(DIR, filename);
- return new InterchangeLoopsRefactoring(thisFile, selection);
- }
-
- @Override protected String readTestFile(String srcDir, String filename) throws IOException, URISyntaxException
- {
- String result = super.readTestFile(srcDir, filename);
-
- int startOffset = result.lastIndexOf('\n', result.indexOf("!<<<<<START")) + 1;
- int endOffset = result.indexOf("!<<<<<END");
- if (startOffset <= 0 || endOffset < 0 || endOffset <= startOffset)
- throw new Error("Malformed test case");
-
- selection = new TextSelection(startOffset, endOffset-startOffset);
-
- return result;
- }
-
- protected String readTestFile(String filename) throws IOException, URISyntaxException
- {
- return super.readTestFile(DIR, filename);
- }
-
- public void test() throws Exception
- {
- if (myFilename == null) return; // when JUnit invokes this outside a test suite
-
- doRefactoring();
- assertEquals(
- readTestFile(myFilename + ".result").replaceAll("\\r", ""), // expected result
- readWorkspaceFile(myFilename).replaceAll("\\r", "")); // actual refactored file
- }
-
- public static class InterchangeLoopsFailureTest extends InterchangeLoopsTestCase
- {
- private static String failFilename;
-
- public InterchangeLoopsFailureTest(){;}
-
- public InterchangeLoopsFailureTest(String filename, Object ignore)
- {
- super(filename, ignore);
- failFilename = filename;
- }
-
- @Override
- protected void doRefactoring() throws Exception
- {
- String description = "Attempt to interchange loops in " + failFilename;
-
- InterchangeLoopsRefactoring refactoring = createRefactoring(failFilename);
-
- RefactoringStatus status = refactoring.checkInitialConditions(new NullProgressMonitor());
- assertTrue(status.hasFatalError());
- }
-
- @Override
- public void test() throws Exception
- {
- doRefactoring();
- }
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/interchangeloops/InterchangeLoopsTestSuite.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/interchangeloops/InterchangeLoopsTestSuite.java
deleted file mode 100644
index a1afbe6..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/interchangeloops/InterchangeLoopsTestSuite.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.interchangeloops;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- *
- * @author Tim
- */
-public class InterchangeLoopsTestSuite extends TestSuite
-{
- public static Test suite() throws Exception
- {
- TestSuite suite = new TestSuite();
- suite.addTest(getSuiteFor("test01-simple.f90"));
- suite.addTest(getSuiteFor("test02-simple.f90"));
- suite.addTest(getFailSuiteFor("test-single-loop.f90"));
- suite.addTest(getSuiteFor("test-triple-loop.f90"));
- suite.addTest(getSuiteFor("test-triple-loop2.f90"));
- return suite;
- }
-
- private static TestSuite getSuiteFor(String baseFilename)
- {
- TestSuite subSuite = new TestSuite("Interchanging loops in " + baseFilename);
- subSuite.addTest(new InterchangeLoopsTestCase(baseFilename, null));
- return subSuite;
- }
-
- private static TestSuite getFailSuiteFor(String baseFilename)
- {
- TestSuite subSuite = new TestSuite("Interchanging loops in " + baseFilename);
- subSuite.addTest(new InterchangeLoopsTestCase.InterchangeLoopsFailureTest(baseFilename, null));
- return subSuite;
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/introimplicitnone/IntroImplicitTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/introimplicitnone/IntroImplicitTestCase.java
deleted file mode 100644
index 180eb21..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/introimplicitnone/IntroImplicitTestCase.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.introimplicitnone;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.photran.core.vpg.util.LineCol;
-import org.eclipse.photran.internal.core.refactoring.IntroImplicitNoneRefactoring;
-import org.eclipse.photran.refactoring.tests.RefactoringTestCase;
-
-public class IntroImplicitTestCase extends RefactoringTestCase
-{
- private static final String DIR = "intro-implicit-test-code";
-
- private static NullProgressMonitor pm = new NullProgressMonitor();
-
- protected String filename;
- protected LineCol lineCol;
- protected boolean shouldCompileAndRun;
-
- public IntroImplicitTestCase() {;} // when JUnit invokes a subclass outside a test suite
-
- public IntroImplicitTestCase(String filename, LineCol lineCol, boolean shouldCompileAndRun)
- {
- this.filename = filename;
- this.lineCol = lineCol;
- this.shouldCompileAndRun = shouldCompileAndRun;
- this.setName("test");
- }
-
- protected void doRefactoring() throws Exception
- {
- String description = "Attempt to introduce implicit none at " + lineCol;
-
- IntroImplicitNoneRefactoring refactoring = createRefactoring(filename, lineCol);
-
- project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
- String before = shouldCompileAndRun ? compileAndRunFortranProgram() : "";
-
- RefactoringStatus status = refactoring.checkInitialConditions(pm);
- assertTrue(description + " failed initial precondition check: " + status.toString(), !status.hasError());
-
- status = refactoring.checkFinalConditions(pm);
- assertTrue(description + " failed final precondition check: " + status.toString(), !status.hasError());
-
- Change change = refactoring.createChange(pm);
- assertNotNull(description + " returned null Change object", change);
- assertTrue(description + " returned invalid Change object", change.isValid(pm).isOK());
- change.perform(pm);
-
- project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
-
- String after = shouldCompileAndRun ? compileAndRunFortranProgram() : "";
- System.out.println(after);
- assertEquals(before, after);
- }
-
- private IntroImplicitNoneRefactoring createRefactoring(final String filename, final LineCol lineCol) throws Exception
- {
- final IFile thisFile = importFile(DIR, filename);
-
- //project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor()); // Runs in separate thread... grrr...
- ArrayList<IFile> files = new ArrayList<IFile>();
- files.add(thisFile);
- return new IntroImplicitNoneRefactoring(files);//thisFile, new TextSelection(getLineColOffset(filename, lineCol), 0));
- }
-
- protected String readTestFile(String filename) throws IOException, URISyntaxException
- {
- return super.readTestFile(DIR, filename);
- }
-
- /**
- * Given an array with all of the positions of identifiers that should be renamed together, try applying the Rename refactoring to
- * each, and make sure all the others change with it.
- */
- public void test() throws Exception
- {
- if (filename == null) return; // when JUnit invokes this outside a test suite
-
- doRefactoring();
- assertEquals(
- readTestFile(filename + ".result"), // expected result
- readWorkspaceFile(filename)); // actual refactored file
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/introimplicitnone/IntroImplicitTestSuite.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/introimplicitnone/IntroImplicitTestSuite.java
deleted file mode 100644
index 331a587..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/introimplicitnone/IntroImplicitTestSuite.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.introimplicitnone;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-public class IntroImplicitTestSuite extends TestSuite
-{
- public static Test suite() throws Exception
- {
- TestSuite suite = new TestSuite();
-
- suite.addTest(getSuiteFor("bigexpression.f90"));
- suite.addTest(getSuiteFor("fortran.f90"));
- suite.addTest(getSuiteFor("crazyimplicits.f90"));
- suite.addTest(getSuiteFor("implicit-subprog.f90", false));
-
- suite.addTest(getSuiteFor("crazyimplicits.f90", "fortran.f90"));
- suite.addTest(getSuiteFor("crazyimplicits.f90", "fortran.f90", "bigexpression.f90"));
-
- return suite;
- }
-
- private static TestSuite getSuiteFor(String baseFilename)
- {
- return getSuiteFor(baseFilename, true);
- }
-
- private static TestSuite getSuiteFor(String baseFilename, boolean shouldCompileAndRun)
- {
- TestSuite subSuite = new TestSuite("Introducing Implicit None in " + baseFilename);
- subSuite.addTest(new IntroImplicitTestCase(baseFilename, new LineCol(1, 9), shouldCompileAndRun));
- return subSuite;
- }
-
- private static TestSuite getSuiteFor(String... filenames)
- {
- TestSuite subSuite = new TestSuite("Introducing Implicit None in selected files");
- for(String filename : filenames)
- {
- subSuite.addTest(new IntroImplicitTestCase(filename, new LineCol(1, 9), true));
- }
- return subSuite;
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/keyword/KeywordCaseTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/keyword/KeywordCaseTestCase.java
deleted file mode 100644
index 0e2c841..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/keyword/KeywordCaseTestCase.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.keyword;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.photran.internal.core.refactoring.KeywordCaseRefactoring;
-import org.eclipse.photran.refactoring.tests.RefactoringTestCase;
-
-/**
- * Test cases for Keyword Case Refactoring
- * @author Kurt Hendle
- */
-public class KeywordCaseTestCase extends RefactoringTestCase
-{
- private static final String DIR = "keyword-case-test-code";
-
- private static NullProgressMonitor pm = new NullProgressMonitor();
-
- protected String filename;
- protected boolean lowerCase;
-
- public KeywordCaseTestCase() {;} // when JUnit invokes a subclass outside a test suite
-
- public KeywordCaseTestCase(String filename, boolean lowerCase)
- {
- this.filename = filename;
- this.lowerCase = lowerCase;
- this.setName("test");
- }
-
- /** Borrowed from IntroImplicitTestCase.java */
- protected void doRefactoring() throws Exception
- {
- String description = "Attempt to upcase keywords in " + filename;
-
- KeywordCaseRefactoring refactoring = createRefactoring(filename);
- refactoring.setLowerCase(lowerCase);
-
- RefactoringStatus status = refactoring.checkInitialConditions(pm);
- assertTrue(description + " failed initial precondition check: " + status.toString(), !status.hasError());
-
- status = refactoring.checkFinalConditions(pm);
- assertTrue(description + " failed final precondition check: " + status.toString(), !status.hasError());
-
- Change change = refactoring.createChange(pm);
- assertNotNull(description + " returned null Change object", change);
- assertTrue(description + " returned invalid Change object", change.isValid(pm).isOK());
- change.perform(pm);
-
- project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
- }
-
- private KeywordCaseRefactoring createRefactoring(final String filename) throws Exception
- {
- final IFile thisFile = importFile(DIR, filename);
-
- ArrayList<IFile> files = new ArrayList<IFile>();
- files.add(thisFile);
-
- return new KeywordCaseRefactoring(files);
- }
-
- protected String readTestFile(String filename) throws IOException, URISyntaxException
- {
- return super.readTestFile(DIR, filename);
- }
-
- /**
- * Borrowed from IntroImplicitTestCase.java *
- *
- * Given an array with all of the positions of identifiers that should be renamed together, try applying the Rename refactoring to
- * each, and make sure all the others change with it.
- */
- public void test() throws Exception
- {
- if (filename == null) return; // when JUnit invokes this outside a test suite
-
- doRefactoring();
- assertEquals(
- readTestFile(filename + ".result").replaceAll("\\r", ""), // expected result
- readWorkspaceFile(filename).replaceAll("\\r", "")); // actual refactored file
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/keyword/KeywordCaseTestSuite.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/keyword/KeywordCaseTestSuite.java
deleted file mode 100644
index 1525ce4..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/keyword/KeywordCaseTestSuite.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.keyword;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Test Suite for Keyword Case Refactoring
- * @author Kurt Hendle
- */
-public class KeywordCaseTestSuite extends TestSuite
-{
- public static Test suite() throws Exception
- {
- TestSuite suite = new TestSuite();
-
- suite.addTest(getSuiteFor("01-simple.f90"));
- suite.addTest(getSuiteFor("01-simple.f90", "02-end-after.f90"));
-
- return suite;
- }
-
- private static TestSuite getSuiteFor(String baseFilename)
- {
- TestSuite subSuite = new TestSuite("Upcasing all keywords in " + baseFilename);
- subSuite.addTest(new KeywordCaseTestCase(baseFilename, false));
- return subSuite;
- }
-
- private static TestSuite getSuiteFor(String... filenames)
- {
- TestSuite subSuite = new TestSuite("Upcasing all keywords in selected files");
- for(String filename : filenames)
- {
- subSuite.addTest(new KeywordCaseTestCase(filename, false));
- }
- return subSuite;
- }
-}
-
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/movesavedtocommonblock/MoveSavedToCommonBlockTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/movesavedtocommonblock/MoveSavedToCommonBlockTestCase.java
deleted file mode 100644
index a6f2ae1..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/movesavedtocommonblock/MoveSavedToCommonBlockTestCase.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.movesavedtocommonblock;
-
-/**
- *
- * @author Stas Negara
- */
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.photran.core.vpg.util.LineCol;
-import org.eclipse.photran.internal.core.refactoring.MoveSavedToCommonBlockRefactoring;
-import org.eclipse.photran.refactoring.tests.RefactoringTestCase;
-
-public class MoveSavedToCommonBlockTestCase extends RefactoringTestCase
-{
- private static final String DIR = "move-saved-to-common-block-test-code";
-
- private static NullProgressMonitor pm = new NullProgressMonitor();
-
- protected String filename;
- protected LineCol lineCol;
-
- public MoveSavedToCommonBlockTestCase() {} // when JUnit invokes a subclass outside a test suite
-
- public MoveSavedToCommonBlockTestCase(String filename, LineCol lineCol)
- {
- this.filename = filename;
- this.lineCol = lineCol;
- this.setName("test");
- }
-
- protected void doRefactoring() throws Exception
- {
- String description = "Attempt to apply MoveSavedToCommonBlockRefactoring at " + lineCol;
-
- MoveSavedToCommonBlockRefactoring moveSavedToCommonBlockRefactoring = createRefactoring(filename, lineCol);
-
- RefactoringStatus status = moveSavedToCommonBlockRefactoring.checkInitialConditions(pm);
- assertTrue(description + " failed initial precondition check: " + status.toString(), !status.hasError());
-
- status = moveSavedToCommonBlockRefactoring.checkFinalConditions(pm);
- assertTrue(description + " failed final precondition check: " + status.toString(), !status.hasError());
-
- Change change = moveSavedToCommonBlockRefactoring.createChange(pm);
- assertNotNull(description + " returned null Change object", change);
- assertTrue(description + " returned invalid Change object", change.isValid(pm).isOK());
- change.perform(pm);
-
- project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
- }
-
- private MoveSavedToCommonBlockRefactoring createRefactoring(final String filename, final LineCol lineCol) throws Exception
- {
- final IFile thisFile = importFile(DIR, filename);
-
- return new MoveSavedToCommonBlockRefactoring(thisFile, new TextSelection(getLineColOffset(filename, lineCol), 0));
- }
-
- protected String readTestFile(String filename) throws IOException, URISyntaxException
- {
- return super.readTestFile(DIR, filename);
- }
-
- public void test() throws Exception
- {
- if (filename == null) return; // when JUnit invokes this outside a test suite
-
- doRefactoring();
- assertEquals(
- readTestFile(filename + ".result"), // expected result
- readWorkspaceFile(filename)); // actual refactored file
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/movesavedtocommonblock/MoveSavedToCommonBlockTestSuite.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/movesavedtocommonblock/MoveSavedToCommonBlockTestSuite.java
deleted file mode 100644
index 4c808e3..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/movesavedtocommonblock/MoveSavedToCommonBlockTestSuite.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.movesavedtocommonblock;
-
-/**
- *
- * @author Stas Negara
- */
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-public class MoveSavedToCommonBlockTestSuite extends TestSuite
-{
- public static Test suite() throws Exception
- {
- TestSuite suite = new TestSuite();
- suite.addTest(getSuiteFor("test1.f90", new LineCol(29, 10)));
- suite.addTest(getSuiteFor("test2.f90", new LineCol(65, 10)));
- return suite;
- }
-
- private static TestSuite getSuiteFor(String baseFilename, LineCol lineCol)
- {
- TestSuite subSuite = new TestSuite("Move Saved To Common Block in file " + baseFilename);
- subSuite.addTest(new MoveSavedToCommonBlockTestCase(baseFilename, lineCol));
- return subSuite;
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename1.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename1.java
deleted file mode 100644
index 70b384b..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename1.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.rename;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-public class Rename1 extends RenameTestSuite
-{
- ///////////////////////////////////////////////////////////////////////////
- //
- // RECORD POSITIONS OF ALL IDENTIFIERS IN RENAME1.F90, AND
- // GROUP THEM ACCORDING TO WHICH ONES SHOULD BE RENAMED TOGETHER
- //
- ///////////////////////////////////////////////////////////////////////////
-
- private String filename = "rename1.f90";
-
- private Ident intInMain = var(filename, "int", new LineCol[] { lc(11,10), lc(17,16), lc(23,20) });
- private Ident subInMain = var(filename, "sub", new LineCol[] { lc(24,16), lc(25,20) });
-
- private Ident[] mainVars = new Ident[] {
- var(filename, "two", new LineCol[] { lc(2,27), lc(7,40), lc(9,23) }),
- var(filename, "three", new LineCol[] { lc(3,27), lc(4,23), lc(5,13), lc(6,15), lc(7,33), lc(7,66), lc(9,28) }),
- var(filename, "a", new LineCol[] { lc(4,16), lc(9,14) }),
- var(filename, "b", new LineCol[] { lc(4,19), lc(9,17) }),
- var(filename, "not_shadowed", new LineCol[] { lc(5,23), lc(9,35), lc(21,16) }),
- var(filename, "c", new LineCol[] { lc(6,25), lc(9,20) }),
- var(filename, "shadow_this_1", new LineCol[] { lc(7,16), lc(9,49) }),
- var(filename, "shadow_this_2", new LineCol[] { lc(7,46), lc(9,64) }),
- var(filename, "implicit", new LineCol[] { lc(8,5), lc(9,79), lc(21,64) }),
- intInMain
- };
-
- private Ident shadowThis1IntShadow = var(filename, "shadow_this_1", new LineCol[] { lc(18,18), lc(21,30) });
- private Ident shadowThis2IntShadow = var(filename, "shadow_this_2", new LineCol[] { lc(19,18), lc(21,45) });
-
- private Ident main = var(filename, "Main", new LineCol[] { lc(1,9), lc(26,13) });
- private Ident ext = var(filename, "ext", new LineCol[] { lc(12,10), lc(22,12), lc(27,12), lc(33,16) });
-
- private Ident twoInExt = var(filename, "two", new LineCol[] { lc(28,14), lc(31,18) });
-
- private Ident intContained = var(filename, "int", new LineCol[] { lc(30,16), lc(32,20) });
-
- private Ident[] otherVars = new Ident[] { shadowThis1IntShadow, shadowThis2IntShadow, main, ext, twoInExt, intContained };
-
- private Ident intrinsic = var(filename, "selected_real_kind", new LineCol[] { lc(3,35) });
-
- ///////////////////////////////////////////////////////////////////////////
- //
- // TEST CASES
- //
- ///////////////////////////////////////////////////////////////////////////
-
- public static Test suite() throws Exception
- {
- return new Rename1();
- }
-
- public Rename1() throws Exception
- {
- addSuccessTests();
- addFailNotAnIdentifier();
- addFailIntrinsicProcedure();
- addFailConflictInSameScope();
- addFailConflictInReference();
- }
-
- public void addSuccessTests()
- {
- startTests("Renaming local variables in main program");
- for (Ident v : mainVars)
- {
- addSuccessTests(v, v.getName() + v.getName());
- addSuccessTests(v, "z");
- addSuccessTests(v, "if");
- }
- endTests();
-
- startTests("Renaming variables outside main program");
- for (Ident v : otherVars)
- {
- addSuccessTests(v, v.getName() + v.getName());
- addSuccessTests(v, "z");
- addSuccessTests(v, "if");
- }
- endTests();
- }
-
- public void addFailNotAnIdentifier() throws Exception
- {
- startTests("Check: Not an identifier");
- for (Ident v : mainVars)
- {
- addPreconditionTests(v, "");
- addPreconditionTests(v, "\u0080"); // Euro symbol
- addPreconditionTests(v, "3");
- addPreconditionTests(v, "hello world");
- addPreconditionTests(v, "\"hello world\"");
- }
- endTests();
- }
-
- public void addFailIntrinsicProcedure() throws Exception
- {
- startTests("Check: Cannot rename intrinsic procedures");
- addPreconditionTests(intrinsic, "new_name");
- endTests();
- }
-
- public void addFailConflictInSameScope() throws Exception
- {
- startTests("Check: Local variable name conflicts in local scope (main program)");
- for (int i = 0; i < mainVars.length; i++)
- addPreconditionTests(mainVars[i], mainVars[Math.max(i-1, 0)].getName());
- endTests();
-
- startTests("Check: Local variable name conflicts with capitalization changed");
- for (int i = 0; i < mainVars.length; i++)
- addPreconditionTests(mainVars[i], mainVars[Math.max(i-1, 0)].getName().toUpperCase());
- endTests();
- }
-
- public void addFailConflictInReference() throws Exception
- {
- startTests("Check: Conflicts outside local scope");
- addPreconditionTests(main, "int"); // FIXME: Bug -- should be addPreconditionTests
- addPreconditionTests(main, "ext");
- addPreconditionTests(intInMain, "Main");
- addPreconditionTests(intInMain, "ext");
- addPreconditionTests(subInMain, "int");
- addPreconditionTests(subInMain, "ext");
- addPreconditionTests(ext, "int"); // conflict due to reference in Main
- addPreconditionTests(ext, "sub"); // will change interpretation of ext call in Main
- addPreconditionTests(ext, "Main");
- addSuccessTests(intContained, "sub");
- addSuccessTests(intContained, "Main");
- endTests();
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename2.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename2.java
deleted file mode 100644
index 367faf4..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename2.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.rename;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-public class Rename2 extends RenameTestSuite
-{
- ///////////////////////////////////////////////////////////////////////////
- //
- // RECORD POSITIONS OF ALL IDENTIFIERS IN RENAME2.F90, AND
- // GROUP THEM ACCORDING TO WHICH ONES SHOULD BE RENAMED TOGETHER
- //
- ///////////////////////////////////////////////////////////////////////////
-
- private String filename = "rename2.f90";
-
- private Ident[] vars = new Ident[]
- {
- var(filename, "Main", new LineCol[] { lc(2,9), lc(27,13) }),
- var(filename, "one", new LineCol[] { lc(4,16), lc(12,14), lc(16,11), lc(20,11) }),
- var(filename, "two", new LineCol[] { lc(5,27), lc(10,13), lc(13,14), lc(17,14) }),
- var(filename, "three", new LineCol[] { lc(6,16), lc(14,9), lc(18,9) }),
- var(filename, "four", new LineCol[] { lc(10,21), lc(15,14), lc(19,14) })
- };
-
- ///////////////////////////////////////////////////////////////////////////
- //
- // TEST CASES
- //
- ///////////////////////////////////////////////////////////////////////////
-
- public static Test suite() throws Exception
- {
- return new Rename2();
- }
-
- public Rename2() throws Exception
- {
- startTests("Renaming program with comments and line continuations");
- for (String name : new String[] { "z", "a_really_really_long_name" })
- for (Ident var : vars)
- addSuccessTests(var, name);
- endTests();
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename3.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename3.java
deleted file mode 100644
index a288c9b..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename3.java
+++ /dev/null
@@ -1,166 +0,0 @@
-package org.eclipse.photran.refactoring.tests.rename;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-public class Rename3 extends RenameTestSuite
-{
- ///////////////////////////////////////////////////////////////////////////
- //
- // RECORD POSITIONS OF ALL IDENTIFIERS IN RENAME3*.F90
- //
- ///////////////////////////////////////////////////////////////////////////
-
- private String file = "rename3.f90";
- private String filea = "rename3a.f90";
- private String fileb = "rename3b.f90";
- private String filec = "rename3c.f90";
-
- private Ident myProgram = var("MyProgram");
- private Ident aRenamed3 = var("a_renamed3");
- private Ident bRenamed3 = var("b_renamed3");
- private Ident contained = var("contained");
- private Ident external = var("external");
-
- private Ident moduleA = var("module_a");
- private Ident aSub1of3 = var("a_sub1of3");
- private Ident aSub2of3 = var("a_sub2of3");
- private Ident aSub3of3 = var("a_sub3of3");
-
- private Ident moduleB = var("module_b");
- private Ident bSub1of3 = var("b_sub1of3");
- private Ident bSub2of3 = var("b_sub2of3");
- private Ident bSub3of3 = var("b_sub3of3");
-
- private Ident moduleC = var("module_c");
- private Ident cSub = var("c_sub");
-
- // Note that the order here determines the order in the expectSuccess matrix below
- private Ident[] allVars = new Ident[]
- {
- myProgram, aRenamed3, bRenamed3, contained, external,
- moduleA, aSub1of3, aSub2of3, aSub3of3,
- moduleB, bSub1of3, bSub2of3, bSub3of3,
- moduleC, cSub
- };
-
- private boolean[][] expectSuccess = new boolean[][]
- {
- // IMPORTANT:
- // * Modules can't be renamed, hence the rows of "false" for moduleA, moduleB, and moduleC
- // * The rename refactoring requires that the new name not be identical to the old name, hence "false" along the diagonal
-
- /* vvv can be renamed to >>> myProgram, aRenamed3, bRenamed3, contained, external, moduleA, aSub1of3, aSub2of3, aSub3of3, moduleB, bSub1of3, bSub2of3, bSub3of3, moduleC, cSub
- /* myProgram */ new boolean[] { false, false, false, false, false, true, false, false, true, true, true, false, true, true, true },
- /* aRenamed3 */ new boolean[] { false, false, false, false, false, true, false, false, true, true, true, false, true, true, true },
- /* bRenamed3 */ new boolean[] { false, false, false, false, false, true, false, false, true, true, true, false, true, true, true },
- /* contained */ new boolean[] { false, false, false, false, false, true, false, false, true, true, true, false, true, true, true },
- /* external */ new boolean[] { false, false, false, false, false, true, false, false, true, true, true, false, true, true, true },
- /* moduleA */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false },
- /* aSub1of3 */ new boolean[] { false, false, false, false, false, false, false, false, false, true, true, false, true, true, true },
- /* aSub2of3 */ new boolean[] { false, false, false, false, false, false, false, false, false, true, true, false, true, true, true },
- /* aSub3of3 */ new boolean[] { true, true, true, true, true, false, false, false, false, true, true, true, true, true, true },
- /* moduleB */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false },
- /* bSub1of3 */ new boolean[] { true, true, true, true, true, true, true, true, true, false, false, false, false, true, false },
- /* bSub2of3 */ new boolean[] { false, false, false, false, false, true, false, false, true, false, false, false, false, true, false,},
- /* bSub3of3 */ new boolean[] { true, true, true, true, true, true, true, true, true, false, false, false, false, true, false },
- /* moduleC */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false },
- /* cSub */ new boolean[] { true, true, true, true, true, true, true, true, true, false, false, false, false, false, false },
- };
-
- ///////////////////////////////////////////////////////////////////////////
- //
- // TEST CASES
- //
- ///////////////////////////////////////////////////////////////////////////
-
- public static Test suite() throws Exception
- {
- return new Rename3();
- }
-
- public Rename3() throws Exception
- {
- myProgram.addReferences(file, new LineCol[] { lc(1,9) });
- aRenamed3.addReferences(file, new LineCol[] { lc(2,17), lc(9,8) });
- bRenamed3.addReferences(file, new LineCol[] { lc(3,34), lc(11,8) });
- contained.addReferences(file, new LineCol[] { lc(15,14), lc(12,8) });
- external.addReferences(file, new LineCol[] { lc(18,12), lc(13,8) });
- moduleA.addReferences(file, new LineCol[] { lc(2,7) });
- aSub1of3.addReferences(file, new LineCol[] { lc(7,8) });
- aSub2of3.addReferences(file, new LineCol[] { lc(8,8) });
- aSub3of3.addReferences(file, new LineCol[] { lc(2,31) });
- moduleB.addReferences(file, new LineCol[] { lc(3,7) });
- bSub1of3.addReferences(file, new LineCol[] {});
- bSub2of3.addReferences(file, new LineCol[] { lc(3, 23), lc(10,8) });
- bSub3of3.addReferences(file, new LineCol[] { lc(3,48) });
- moduleC.addReferences(file, new LineCol[] {});
- cSub.addReferences(file, new LineCol[] {});
-
- myProgram.addReferences(filea, new LineCol[] {});
- aRenamed3.addReferences(filea, new LineCol[] {});
- bRenamed3.addReferences(filea, new LineCol[] {});
- contained.addReferences(filea, new LineCol[] {});
- external.addReferences(filea, new LineCol[] {});
- moduleA.addReferences(filea, new LineCol[] { lc(1,8) });
- aSub1of3.addReferences(filea, new LineCol[] { lc(3,16) });
- aSub2of3.addReferences(filea, new LineCol[] { lc(4,16) });
- aSub3of3.addReferences(filea, new LineCol[] { lc(5,16) });
- moduleB.addReferences(filea, new LineCol[] {});
- bSub1of3.addReferences(filea, new LineCol[] {});
- bSub2of3.addReferences(filea, new LineCol[] {});
- bSub3of3.addReferences(filea, new LineCol[] {});
- moduleC.addReferences(filea, new LineCol[] {});
- cSub.addReferences(filea, new LineCol[] {});
-
- myProgram.addReferences(fileb, new LineCol[] {});
- aRenamed3.addReferences(fileb, new LineCol[] {});
- bRenamed3.addReferences(fileb, new LineCol[] {});
- contained.addReferences(fileb, new LineCol[] {});
- external.addReferences(fileb, new LineCol[] {});
- moduleA.addReferences(fileb, new LineCol[] {});
- aSub1of3.addReferences(fileb, new LineCol[] {});
- aSub2of3.addReferences(fileb, new LineCol[] {});
- aSub3of3.addReferences(fileb, new LineCol[] {});
- moduleB.addReferences(fileb, new LineCol[] { lc(1,8) });
- bSub1of3.addReferences(fileb, new LineCol[] { lc(4,16) });
- bSub2of3.addReferences(fileb, new LineCol[] { lc(5,16) });
- bSub3of3.addReferences(fileb, new LineCol[] { lc(6,16) });
- moduleC.addReferences(fileb, new LineCol[] { lc(2,9) });
- cSub.addReferences(fileb, new LineCol[] { lc(7,12) });
-
- myProgram.addReferences(filec, new LineCol[] {});
- aRenamed3.addReferences(filec, new LineCol[] {});
- bRenamed3.addReferences(filec, new LineCol[] {});
- contained.addReferences(filec, new LineCol[] {});
- external.addReferences(filec, new LineCol[] {});
- moduleA.addReferences(filec, new LineCol[] {});
- aSub1of3.addReferences(filec, new LineCol[] {});
- aSub2of3.addReferences(filec, new LineCol[] {});
- aSub3of3.addReferences(filec, new LineCol[] {});
- moduleB.addReferences(filec, new LineCol[] {});
- bSub1of3.addReferences(filec, new LineCol[] {});
- bSub2of3.addReferences(filec, new LineCol[] {});
- bSub3of3.addReferences(filec, new LineCol[] {});
- moduleC.addReferences(filec, new LineCol[] { lc(1,8) });
- cSub.addReferences(filec, new LineCol[] { lc(3,16) });
-
- startTests("Renaming subroutines imported from modules");
- for (int i = 0; i < allVars.length; i++)
- {
- for (int j = 0; j < allVars.length; j++)
- {
-// for (int i = 6; i == 6; i++)
-// {
-// for (int j = 1; j == 1; j++)
-// {
- if (expectSuccess[i][j])
- addSuccessTests(allVars[i], allVars[j].getName());
- else
- addPreconditionTests(allVars[i], allVars[j].getName());
- }
- }
- endTests();
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename4.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename4.java
deleted file mode 100644
index f27cd2b..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename4.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.eclipse.photran.refactoring.tests.rename;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-public class Rename4 extends RenameTestSuite
-{
- ///////////////////////////////////////////////////////////////////////////
- //
- // RECORD POSITIONS OF ALL IDENTIFIERS IN RENAME4*.F90
- //
- ///////////////////////////////////////////////////////////////////////////
-
- private String file = "rename4.f90";
- private String filea = "rename4a.fh";
- private String fileb = "rename4b.fh";
-
- private Ident myProgram = var("MyProgram");
- private Ident hello = var("hello");
- private Ident goodbye = var("goodbye");
-
- ///////////////////////////////////////////////////////////////////////////
- //
- // TEST CASES
- //
- ///////////////////////////////////////////////////////////////////////////
-
- public static Test suite() throws Exception
- {
- return new Rename4();
- }
-
- public Rename4() throws Exception
- {
- myProgram.addReferences(file, new LineCol[] { lc(1,9) });
- hello.addReferences(file, new LineCol[] { lc(3,12) });
- goodbye.addReferences(file, new LineCol[] {});
-
- myProgram.addReferences(filea, new LineCol[] {});
- hello.addReferences(filea, new LineCol[] { lc(1,12) });
- goodbye.addReferences(filea, new LineCol[] { lc(2,12) });
-
- myProgram.addReferences(fileb, new LineCol[] {});
- hello.addReferences(fileb, new LineCol[] { lc(1,10) });
- goodbye.addReferences(fileb, new LineCol[] {});
-
- startTests("Renaming file with Fortran INCLUDE lines");
- addSuccessTests(myProgram, "ziggySockyZiggySockyHoyHoyHoy");
- addPreconditionTests(myProgram, "hello");
- addPreconditionTests(hello, "Goodbye");
- addPreconditionTests(hello, "MyProgram");
- addPreconditionTests(hello, "ziggySockyZiggySockyHoyHoyHoy");
- endTests();
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename5.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename5.java
deleted file mode 100644
index 70fd3af..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename5.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.rename;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-public class Rename5 extends RenameTestSuite
-{
- ///////////////////////////////////////////////////////////////////////////
- //
- // RECORD POSITIONS OF ALL IDENTIFIERS IN RENAME3.F90, AND
- // GROUP THEM ACCORDING TO WHICH ONES SHOULD BE RENAMED TOGETHER
- //
- ///////////////////////////////////////////////////////////////////////////
-
- private String filename = "rename5.f90";
-
- private Ident intrinsic1 = var(filename, "selected_int_kind", new LineCol[] { lc(2,14) });
- private Ident intrinsic2 = var(filename, "null", new LineCol[] { lc(29,33) });
-
- //private Ident outerThrice = var(filename, "thrice", new LineCol[] { lc(2,45) });
- //private Ident outerThriceImpliedResult = var(filename, "thrice", new LineCol[] { lc(4,3) });
- private Ident outerThriceFunctionAndResult = var(filename, "thrice", new LineCol[] { lc(2,45), lc(4,3), lc(5,14),
- lc(17,12), lc(17,23), lc(45,20)}); // If statement function removed
- private Ident outerThriceParam = var(filename, "n", new LineCol[] { lc(2,52), lc(3,17) });
-
- private Ident typeType = var(filename, "type", new LineCol[] { lc(7,8), lc(9,12), lc(27,10), lc(29,10), lc(37,9) });
- private Ident typeComponent = var(filename, "a", new LineCol[] { lc(8,16), lc(35,7), lc(45,9) });
-
- //private Ident innerThrice = var(filename, "thrice", new LineCol[] { lc(12,3), lc(17,12), lc(17,23), lc(45,20) });
- //private Ident innerThriceParam = var(filename, "n", new LineCol[] { lc(12,10), lc(12,17) });
-
- private Ident localN = var(filename, "n", new LineCol[] { lc(14,3), lc(17,30), lc(17,34) });
-
- //private Ident fFunction = var(filename, "f", new LineCol[] { lc(17,38), lc(17,44), lc(23,30), lc(45,27), lc(46,16) });
- //private Ident fResult = var(filename, "f", new LineCol[] { lc(47,5), lc(45,16), lc(45,29) });
- private Ident fFunctionAndResult = var(filename, "f", new LineCol[] { lc(17,38), lc(17,44), lc(23,30), lc(45,27), lc(46,16), lc(43,5), lc(45,16), lc(45,29) });
- private Ident fParam = var(filename, "a", new LineCol[] { lc(23,33), lc(25,16), lc(32,19), lc(35,11), lc(37,14) });
- private Ident fx = var(filename, "x", new LineCol[] { lc(27,19), lc(31,15), lc(35,5), lc(37,5), lc(39,10) });
- private Ident fp = var(filename, "p", new LineCol[] { lc(29,28), lc(39,5) });
-
- private Ident[] notRenameable = new Ident[]
- {
- intrinsic1, intrinsic2,
- outerThriceParam, /*innerThriceParam,*/ fParam,
- typeComponent,
- };
-
- private Ident[] renameable = new Ident[]
- {
- outerThriceFunctionAndResult,
- typeType,
- /*innerThrice,*/
- localN,
- fFunctionAndResult,
- fx,
- fp,
- };
-
- ///////////////////////////////////////////////////////////////////////////
- //
- // TEST CASES
- //
- ///////////////////////////////////////////////////////////////////////////
-
- public static Test suite() throws Exception
- {
- return new Rename5();
- }
-
- public Rename5() throws Exception
- {
- //startTests("Renaming program with a shadowing statement function, implied results, and pointers");
- startTests("Renaming program with implied results and pointers");
- for (Ident var : notRenameable)
- addPreconditionTests(var, "z");
- for (Ident var : renameable)
- addSuccessTests(var, "z");
- endTests();
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename6.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename6.java
deleted file mode 100644
index 8373836..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename6.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.rename;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-public class Rename6 extends RenameTestSuite
-{
- private String filename = "rename6.f90";
-
- private Ident[] vars = new Ident[] {
- var(filename, "outer", new LineCol[] { lc(1,21), lc(3,8), lc(9,6) }),
- var(filename, "i", new LineCol[] { lc(6,23), lc(7,15), lc(15,22), lc(22,30), lc(24,14), lc(26,12), lc(28,23), lc(28,29) }),
- var(filename, "hi", new LineCol[] { lc(7,27), lc(18,16), lc(18,30), lc(22,6) }),
- var(filename, "bye", new LineCol[] { lc(7,38), lc(18,20), lc(18,40), lc(22,9) }),
- var(filename, "ty", new LineCol[] { lc(15,2), lc(15,2), lc(15,9), lc(22,13) }),
- var(filename, "array", new LineCol[] { lc(10,12), lc(24,6), lc(26,6), lc(28,7) }),
- var(filename, "nl1", new LineCol[] { lc(18,11), lc(19,14) }),
- var(filename, "nl2", new LineCol[] { lc(18,25) }),
- var(filename, "nl3", new LineCol[] { lc(18,35) }),
- var(filename, "j", new LineCol[] { lc(5,12), lc(28,13), lc(28,17) }),
- };
-
- public static Test suite() throws Exception
- {
- return new Rename6();
- }
-
- public Rename6() throws Exception
- {
- startTests("Renaming local variables: nested derived type and namelists");
- for (Ident v : vars)
- addSuccessTests(v, "zzzzz");
- endTests();
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename7.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename7.java
deleted file mode 100644
index 8c1d832..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename7.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.rename;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-public class Rename7 extends RenameTestSuite
-{
- private String filename = "rename7.f90";
-
- private Ident[] vars = new Ident[] {
- var(filename, "v1", new LineCol[] { lc(6,12), lc(8,18), lc(12,6) }),
- var(filename, "v2", new LineCol[] { lc(6,16), lc(8,22), lc(12,10) }),
- var(filename, "v3", new LineCol[] { lc(6,20), lc(8,28) }),
- var(filename, "v4", new LineCol[] { lc(6,24), lc(8,41) }),
- var(filename, "v5", new LineCol[] { lc(6,28), lc(8,45) }),
- var(filename, "common1", new LineCol[] { lc(8,9), /*lc(8,32),*/ lc(10,7) }),
- };
-
- private Ident bdn = var(filename, "bdn", new LineCol[] { lc(2,12), lc(14,16) });
-
- public static Test suite() throws Exception
- {
- return new Rename7();
- }
-
- public Rename7() throws Exception
- {
- startTests("Renaming local variables: common blocks and block data");
-
- addSuccessTests(bdn, "zzzzz");
- for (Ident v : vars)
- addSuccessTests(bdn, v.getName());
-
- for (Ident v1 : vars)
- {
- addSuccessTests(v1, "zzzzz");
-
- for (Ident v2 : vars)
- addPreconditionTests(v1, v2.getName());
- }
-
- endTests();
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename8.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename8.java
deleted file mode 100644
index 81c1c16..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename8.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.rename;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-public class Rename8 extends RenameTestSuite
-{
- private String filename = "rename8.f90";
-
- private Ident f = var(filename, "f", new LineCol[] { lc(4,10), lc(28,14) });
- private Ident g_paramOfF = var(filename, "g", new LineCol[] { lc(4,12), lc(11,31), lc(23,18) });
- private Ident q = var(filename, "q", new LineCol[] { lc(4,22), lc(7,23), lc(26,3) });
- private Ident h = var(filename, "h", new LineCol[] { lc(11,33), lc(15,35), lc(18,22) });
- private Ident x_paramOfG = var(filename, "x", new LineCol[] { lc(11,36), lc(21,39) });
- private Ident x_paramOfH = var(filename, "x", new LineCol[] { lc(15,37), lc(17,43) });
- private Ident g_function = var(filename, "g", new LineCol[] { lc(30,18), lc(30,23), lc(30,43) });
-
- // Note that the order here determines the order in the expectSuccess matrix below
- private Ident[] allVars = new Ident[]
- {
- f, g_paramOfF, q, h, x_paramOfG, x_paramOfH, g_function
- };
-
- private boolean[][] expectSuccess = new boolean[][]
- {
- // IMPORTANT:
- // * Subprogram arguments cannot be renamed
- // * x cannot be renamed to x
-
- /* vvv can be renamed to >>> f g_paramOfF q h x_paramOfG x_paramOfH g_function
- /* f */ new boolean[] { false, false, false, true, true, true, false },
- /* g_paramOfF */ new boolean[] { false, false, false, false, false, false, false },
- /* q */ new boolean[] { false, false, false, true, true, true, false },
- /* h */ new boolean[] { false, false, false, false, false, false, false },
- /* x_paramOfG */ new boolean[] { false, false, false, false, false, false, false },
- /* x_paramOfH */ new boolean[] { false, false, false, false, false, false, false },
- /* g_function */ new boolean[] { false, false, true, true, true, true, false },
- };
-
- public static Test suite() throws Exception
- {
- return new Rename8();
- }
-
- public Rename8() throws Exception
- {
- startTests("Renaming subroutine arguments");
- for (int i = 0; i < allVars.length; i++)
- {
- for (int j = 0; j < allVars.length; j++)
- {
- if (expectSuccess[i][j])
- addSuccessTests(allVars[i], allVars[j].getName());
- else
- addPreconditionTests(allVars[i], allVars[j].getName());
- }
- }
- endTests();
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename9.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename9.java
deleted file mode 100644
index 86e056a..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/Rename9.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package org.eclipse.photran.refactoring.tests.rename;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-public class Rename9 extends RenameTestSuite
-{
- private String filename = "rename9.f90";
-
- private Ident i1 = var(filename, "i1", new LineCol[] { lc(3,14), lc(36,12) });
- private Ident j1 = var(filename, "j1", new LineCol[] { lc(4,23) });
- private Ident k1 = var(filename, "k1", new LineCol[] { lc(5,14), lc(7,31) });
- private Ident f1 = var(filename, "f1", new LineCol[] { lc(12,20), lc(12,26), lc(36,24) });
- private Ident i2 = var(filename, "i2", new LineCol[] { lc(17,14) });
- private Ident j2 = var(filename, "j2", new LineCol[] { lc(18,22), lc(39,16) });
- private Ident k2 = var(filename, "k2", new LineCol[] { lc(20,13), lc(22,31), lc(39,20) });
- private Ident f2 = var(filename, "f2", new LineCol[] { lc(27,20), lc(27,26) });
- private Ident j1implicit = var(filename, "j1", new LineCol[] { lc(36,16) });
- private Ident k1implicit = var(filename, "k1", new LineCol[] { lc(36,20) });
- private Ident zimplicit = var(filename, "z", new LineCol[] { lc(36,30) });
- private Ident i2implicit = var(filename, "i2", new LineCol[] { lc(39,12) });
- private Ident f2implicit = var(filename, "f2", new LineCol[] { lc(39,29) });
-
- // Note that the order here determines the order in the expectSuccess matrix below
- private Ident[] allVars = new Ident[]
- {
- i1, j1, k1, f1, i2, j2, k2, f2, j1implicit, k1implicit, zimplicit, i2implicit, f2implicit
- };
-
- private boolean[][] expectSuccess = new boolean[][]
- {
- // IMPORTANT:
- // * Subprogram arguments cannot be renamed
- // * x cannot be renamed to x
- // * j1 and j1implicit have the SAME NAME, so their columns should be identical (same for k1, etc.)
-
- /* vvv can be renamed to >>> i1 j1 k1 f1 i2 j2 k2 f2 j1implicit k1implicit zimplicit i2implicit f2implicit
- /* i1 */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false },
- /* j1 */ new boolean[] { false, false, false, false, true, true, true, true, false, false, true, true, true },
- /* k1 */ new boolean[] { false, false, false, false, true, true, true, true, false, false, false, true, true },
- /* f1 */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false },
- /* i2 */ new boolean[] { true, true, true, true, false, false, false, false, true, true, true, false, false },
- /* j2 */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false },
- /* k2 */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false },
- /* f2 */ new boolean[] { true, true, true, true, false, false, false, false, true, true, true, false, false },
- /* j1implicit */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false },
- /* k1implicit */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false },
- /* zimplicit */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false },
- /* i2implicit */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false },
- /* f2implicit */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false },
- };
-
- public static Test suite() throws Exception
- {
- return new Rename9();
- }
-
- public Rename9() throws Exception
- {
- startTests("Renaming in module with interfaces and visibilities");
- for (int i = 0; i < allVars.length; i++)
- {
- addSuccessTests(allVars[i], "something_different");
- for (int j = 0; j < allVars.length; j++)
- {
- if (expectSuccess[i][j])
- addSuccessTests(allVars[i], allVars[j].getName());
- else
- addPreconditionTests(allVars[i], allVars[j].getName());
- }
- }
- endTests();
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameBug278103.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameBug278103.java
deleted file mode 100644
index 2cd6943..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameBug278103.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.eclipse.photran.refactoring.tests.rename;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-public class RenameBug278103 extends RenameTestSuite
-{
- ///////////////////////////////////////////////////////////////////////////
- //
- // RECORD POSITIONS OF ALL IDENTIFIERS IN BUG278103-*.F90
- //
- ///////////////////////////////////////////////////////////////////////////
-
- private String filem = "bug278103-mod.f90";
- private String filep = "bug278103-prog.f90";
- private String files = "bug278103-subs.f90";
-
- private Ident dim = var("DIM");
-
- ///////////////////////////////////////////////////////////////////////////
- //
- // TEST CASES
- //
- ///////////////////////////////////////////////////////////////////////////
-
- public static Test suite() throws Exception
- {
- return new RenameBug278103();
- }
-
- public RenameBug278103() throws Exception
- {
- dim.addReferences(filem, new LineCol[] { lc(3,27), lc(11,22) });
- dim.addReferences(filep, new LineCol[] { lc(14,24), lc(16,22) });
- dim.addReferences(files, new LineCol[] { lc(5,22), lc(9,14), lc(11,23) });
-
- startTests("Renaming file exercising Bug 278103");
- addSuccessTests(dim, "something_else");
- endTests();
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameBug278106_Visibility.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameBug278106_Visibility.java
deleted file mode 100644
index ced4a94..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameBug278106_Visibility.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package org.eclipse.photran.refactoring.tests.rename;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-public class RenameBug278106_Visibility extends RenameTestSuite
-{
- ///////////////////////////////////////////////////////////////////////////
- //
- // RECORD POSITIONS OF ALL IDENTIFIERS IN BUG278106.F90
- //
- ///////////////////////////////////////////////////////////////////////////
-
- private String file = "bug278106-visibility.f90";
-
- private Ident m1_m1a = var("m1a");
- private Ident m1_m1b = var("m1b");
-
- private Ident s1_m1b = var("m1b");
-
- private Ident s2_m1a = var("m1a");
- private Ident s2_m1b = var("m1b");
-
- private Ident s3_m1b = var("m1b");
-
- ///////////////////////////////////////////////////////////////////////////
- //
- // TEST CASES
- //
- ///////////////////////////////////////////////////////////////////////////
-
- public static Test suite() throws Exception
- {
- return new RenameBug278106_Visibility();
- }
-
- public RenameBug278106_Visibility() throws Exception
- {
- m1_m1a.addReferences(file, new LineCol[] { lc(2,14), lc(14,12), lc(32,13), lc(39,12) });
- m1_m1b.addReferences(file, new LineCol[] { lc(2,19), lc(7,14) });
-
- s1_m1b.addReferences(file, new LineCol[] { lc(13,14), lc(14,17) });
-
- s2_m1a.addReferences(file, new LineCol[] { lc(24,14), lc(26,12) });
- s2_m1b.addReferences(file, new LineCol[] { lc(25,14), lc(26,17) });
-
- s3_m1b.addReferences(file, new LineCol[] { lc(38,14), lc(39,17) });
-
- startTests("Renaming file exercising Bug 278324");
- addSuccessTests(m1_m1a, "something_else");
- addSuccessTests(m1_m1b, "something_else");
- addSuccessTests(s1_m1b, "something_else");
- addSuccessTests(s2_m1a, "something_else");
- addSuccessTests(s2_m1b, "something_else");
- addSuccessTests(s3_m1b, "something_else");
- endTests();
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameBug278320.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameBug278320.java
deleted file mode 100644
index a5bb453..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameBug278320.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package org.eclipse.photran.refactoring.tests.rename;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-public class RenameBug278320 extends RenameTestSuite
-{
- ///////////////////////////////////////////////////////////////////////////
- //
- // RECORD POSITION OF MODULE_ARRAY IN BUG278320-*.F90
- //
- ///////////////////////////////////////////////////////////////////////////
-
- private String prog_file = "bug278320-prog.f90";
- private String mod_file = "bug278320-mod.f90";
-
- private Ident module_array = var("module_array");
-
- ///////////////////////////////////////////////////////////////////////////
- //
- // TEST CASES
- //
- ///////////////////////////////////////////////////////////////////////////
-
- public static Test suite() throws Exception
- {
- return new RenameBug278320();
- }
-
- public RenameBug278320() throws Exception
- {
- module_array.addReferences(prog_file, new LineCol[] { lc(5,5), lc(6,17) });
- module_array.addReferences(mod_file, new LineCol[] { lc(3,28) });
-
- startTests("Renaming file exercising Bug 278320");
- addSuccessTests(module_array, "something_else");
- endTests();
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameBug278324.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameBug278324.java
deleted file mode 100644
index dcc4fe5..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameBug278324.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.eclipse.photran.refactoring.tests.rename;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-public class RenameBug278324 extends RenameTestSuite
-{
- ///////////////////////////////////////////////////////////////////////////
- //
- // RECORD POSITIONS OF ALL IDENTIFIERS IN BUG278324.F90
- //
- ///////////////////////////////////////////////////////////////////////////
-
- private String file = "bug278324.f90";
-
- private Ident parmValFormat = var("parmValFormat");
-
- ///////////////////////////////////////////////////////////////////////////
- //
- // TEST CASES
- //
- ///////////////////////////////////////////////////////////////////////////
-
- public static Test suite() throws Exception
- {
- return new RenameBug278324();
- }
-
- public RenameBug278324() throws Exception
- {
- parmValFormat.addReferences(file, new LineCol[] { lc(3,25), lc(5,11), lc(6,15) });
-
- startTests("Renaming file exercising Bug 278324");
- addSuccessTests(parmValFormat, "something_else");
- endTests();
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameExtSub1.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameExtSub1.java
deleted file mode 100644
index b1a278a..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameExtSub1.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.eclipse.photran.refactoring.tests.rename;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-/**
- * Rename refactoring tests ensuring that renaming external subprograms also
- * updates references in other files and in INTERFACE blocks
- *
- * @author Jeff Overbey
- */
-public class RenameExtSub1 extends RenameTestSuite
-{
- ///////////////////////////////////////////////////////////////////////////
- //
- // RECORD POSITIONS OF SUBPROGRAM IDENTIFIERS IN RENAME-EXTSUB1-*.F90
- //
- ///////////////////////////////////////////////////////////////////////////
-
- private String file1 = "rename-extsub1-a.f90";
- private String file2 = "rename-extsub1-b.f90";
-
- private Ident ext1 = var("ext1");
- private Ident ext2 = var("ext2");
- private Ident ext3 = var("ext3");
-
- ///////////////////////////////////////////////////////////////////////////
- //
- // TEST CASES
- //
- ///////////////////////////////////////////////////////////////////////////
-
- public static Test suite() throws Exception
- {
- return new RenameExtSub1();
- }
-
- public RenameExtSub1() throws Exception
- {
- ext1.addReferences(file1, new LineCol[] { lc(1,12), lc(2,16), lc(6,16), lc(7,20), lc(17,8) });
-
- ext2.addReferences(file1, new LineCol[] { lc(9,31), lc(11,18), lc(18,12) });
- ext2.addReferences(file2, new LineCol[] { lc(1,27), lc(6,3), lc(7,14) });
-
- ext3.addReferences(file1, new LineCol[] { lc(13,22), lc(14,18), lc(19,12), lc(23,10), lc(25,14) });
- ext3.addReferences(file2, new LineCol[] { lc(3,12), lc(5,7) });
-
- startTests("Renaming file testing aggressive external subprogram binding resolution");
- addSuccessTests(ext1, "something_else");
- addSuccessTests(ext2, "something_else");
- addSuccessTests(ext3, "something_else");
- endTests();
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameFnResult.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameFnResult.java
deleted file mode 100644
index 4acbf2b..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameFnResult.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.eclipse.photran.refactoring.tests.rename;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-public class RenameFnResult extends RenameTestSuite
-{
- ///////////////////////////////////////////////////////////////////////////
- //
- // RECORD POSITIONS OF ALL IDENTIFIERS IN RENAME-FN-RESULT.F90
- //
- ///////////////////////////////////////////////////////////////////////////
-
- private String file = "rename-fn-result.f90";
-
- private Ident f = var("f");
-
- ///////////////////////////////////////////////////////////////////////////
- //
- // TEST CASES
- //
- ///////////////////////////////////////////////////////////////////////////
-
- public static Test suite() throws Exception
- {
- return new RenameFnResult();
- }
-
- public RenameFnResult() throws Exception
- {
- f.addReferences(file, new LineCol[] { lc(1,12), lc(3,12), lc(4,16), lc(5,5), lc(6,16) });
-
- startTests("Renaming function and implied result variable simultaneously");
- addSuccessTests(f, "something_else");
- endTests();
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameOverloads.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameOverloads.java
deleted file mode 100644
index d67551e..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameOverloads.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package org.eclipse.photran.refactoring.tests.rename;
-
-import junit.framework.Test;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-/**
- * Rename refactoring tests ensuring that renaming external subprograms also
- * updates references in other files and in INTERFACE blocks
- *
- * @author Jeff Overbey
- */
-public class RenameOverloads extends RenameTestSuite
-{
- ///////////////////////////////////////////////////////////////////////////
- //
- // RECORD POSITIONS OF SUBPROGRAM IDENTIFIERS IN RENAME-EXTSUB1-*.F90
- //
- ///////////////////////////////////////////////////////////////////////////
-
- private String file = "rename-overloads.f90";
-
- private Ident module_overload = var("module_overload");
- private Ident overload_int = var("overload_int");
- private Ident mp_overload_char = var("overload_char");
- private Ident ext_overload_char = var("overload_char");
-
- ///////////////////////////////////////////////////////////////////////////
- //
- // TEST CASES
- //
- ///////////////////////////////////////////////////////////////////////////
-
- public static Test suite() throws Exception
- {
- return new RenameOverloads();
- }
-
- public RenameOverloads() throws Exception
- {
- module_overload.addReferences(file, new LineCol[] { lc(2,13), lc(7,17), lc(39,10), lc(40,10) });
- overload_int.addReferences(file, new LineCol[] { lc(3,16), lc(5,20), lc(15,12), lc(18,16), lc(22,16), lc(24,20), lc(33,8), lc(41,10) });
- mp_overload_char.addReferences(file, new LineCol[] { lc(6,22), lc(9,14), lc(12,18), lc(42,10) });
- ext_overload_char.addReferences(file, new LineCol[] { lc(26,16), lc(28,20), lc(34,8), lc(46,12), lc(49,16) });
-
- startTests("Renaming file testing bindings in overload declarations");
- addSuccessTests(module_overload, "something_else");
- addSuccessTests(overload_int, "something_else");
- addSuccessTests(mp_overload_char, "something_else");
- addSuccessTests(ext_overload_char, "something_else");
- endTests();
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameTestCase.java
deleted file mode 100644
index 368ce3f..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameTestCase.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.rename;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.photran.core.vpg.PhotranVPG;
-import org.eclipse.photran.core.vpg.util.LineCol;
-import org.eclipse.photran.internal.core.refactoring.RenameRefactoring;
-import org.eclipse.photran.refactoring.tests.RefactoringTestCase;
-import org.eclipse.photran.refactoring.tests.rename.RenameTestSuite.Ident;
-
-public abstract class RenameTestCase extends RefactoringTestCase
-{
- private static final String DIR = "rename-test-code";
-
- private static NullProgressMonitor pm = new NullProgressMonitor();
-
- protected String filename;
- protected Ident variable;
- protected LineCol position;
- protected String newName;
-
- public RenameTestCase() {;} // when JUnit invokes a subclass outside a test suite
-
- public RenameTestCase(String filename, Ident variable, LineCol position, String newName)
- {
- this.filename = filename;
- this.variable = variable;
- this.newName = newName;
- this.position = position;
- this.setName("test");
- }
-
- /**
- * Renames the identifier at the given position in the given workspace file to the given new name. Files in the workspace
- * are updated accordingly.
- */
- protected void doRename(String filename, LineCol lineCol, String newName, Set<String> allFiles) throws Exception
- {
- String description = "Attempt to rename identifier at " + lineCol;
-
- RenameRefactoring refactoring = createRefactoring(filename, lineCol, allFiles);
-
- RefactoringStatus status = refactoring.checkInitialConditions(pm);
- assertTrue(description + " failed initial precondition check: " + status.toString(), !status.hasError());
-
- refactoring.setNewNameForIdentifier(newName);
-
- status = refactoring.checkFinalConditions(pm);
- assertTrue(description + " failed final precondition check: " + status.toString(), !status.hasError());
-
- Change change = refactoring.createChange(pm);
- assertNotNull(description + " returned null Change object", change);
- assertTrue(description + " returned invalid Change object", change.isValid(pm).isOK());
- change.perform(pm);
-
- project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
- }
-
- /**
- * Attempts to renames the identifier at the given position in the given workspace file to the given new name, with
- * the expectation that at least one precondition will fail. Returns the first failing status. Does not actually
- * perform the refactoring.
- */
- protected RefactoringStatus attemptRename(String filename, LineCol lineCol, String newName, Set<String> allFiles) throws Exception
- {
- RenameRefactoring refactoring = createRefactoring(filename, lineCol, allFiles);
-
- RefactoringStatus status = refactoring.checkInitialConditions(pm);
- if (status.hasError()) return status;
-
- refactoring.setNewNameForIdentifier(newName);
-
- status = refactoring.checkFinalConditions(pm);
- return status;
- }
-
- private RenameRefactoring createRefactoring(final String filename, final LineCol lineCol, final Set<String> allFiles) throws Exception
- {
- PhotranVPG.getDatabase().clearDatabase();
-
- final IFile thisFile = importFile(DIR, filename);
- for (String f : allFiles)
- importFile(DIR, f);
-
- // Originally, we called acquireTransientAST on each IFile
- PhotranVPG.getInstance().ensureVPGIsUpToDate(new NullProgressMonitor());
- //project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor()); // Runs in separate thread... grrr...
-
-// System.out.println(filename);
-// for (String f : allFiles)
-// System.out.println(f);
-// PhotranVPG.getInstance().db.printOn(System.out);
-
- return new RenameRefactoring(thisFile, new TextSelection(getLineColOffset(filename, lineCol), 0));
- }
-
- protected String readTestFile(String filename) throws IOException, URISyntaxException
- {
- return super.readTestFile(DIR, filename);
- }
-
- public static class ExpectSuccess extends RenameTestCase
- {
- public ExpectSuccess() {;} // when JUnit invokes this outside a test suite
-
- public ExpectSuccess(String filename, Ident variable, LineCol position, String newName)
- {
- super(filename, variable, position, newName);
- }
-
- /**
- * Given an array with all of the positions of identifiers that should be renamed together, try applying the Rename refactoring to
- * each, and make sure all the others change with it.
- */
- public void test() throws Exception
- {
- if (filename == null || variable == null || newName == null) return; // when JUnit invokes this outside a test suite
- //System.out.println("***** " + variable.getName() + " ==> " + newName + " *****");
-
- doRename(filename, position, newName, variable.getFiles());
- for (String filename : variable.getFiles())
- {
- int totalLevDist = variable.getReferences(filename).length * levenshteinDistance(variable.getName(), newName);
- assertLevDist("renaming " + variable.getName() + " to " + newName + " (" + position + " - " + variable.getReferences(filename).length + " occurrences)",
- totalLevDist,
- readTestFile(filename), // original file
- readWorkspaceFile(filename)); // refactored file
- }
- }
- }
-
- public static class ExpectFailure extends RenameTestCase
- {
- public ExpectFailure() {;} // when JUnit invokes this outside a test suite
-
- public ExpectFailure(String filename, Ident variable, LineCol position, String newName)
- {
- super(filename, variable, position, newName);
- }
-
- /**
- * Given an array with all of the positions of identifiers that should be renamed together, try applying the Rename refactoring to
- * each, and make sure a precondition failure is raised.
- * @throws Exception
- */
- public void test() throws Exception
- {
- if (filename == null || variable == null || newName == null) return; // when JUnit invokes this outside a test suite
- //System.out.println("***** " + variable.getName() + " ==> " + newName + " *****");
-
- RefactoringStatus status = attemptRename(filename, position, newName, variable.getFiles());
- assertTrue("Attempting to rename " + variable.getName() + " to " + newName + " in " + filename
- + " (" + position + " - " + variable.getReferences(filename).length + " occurrences) "
- + "should have failed precondition checking.",
- status.hasError());
- }
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameTestSuite.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameTestSuite.java
deleted file mode 100644
index 6b56bf1..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/refactoring/tests/rename/RenameTestSuite.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 University of Illinois at Urbana-Champaign and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * UIUC - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.photran.refactoring.tests.rename;
-
-import java.util.HashMap;
-import java.util.Set;
-
-import junit.framework.TestSuite;
-
-import org.eclipse.photran.core.vpg.util.LineCol;
-
-public abstract class RenameTestSuite extends TestSuite
-{
- ///////////////////////////////////////////////////////////////////////////
- //
- // RECORD POSITIONS OF ALL IDENTIFIERS IN RENAME1.F90, AND
- // GROUP THEM ACCORDING TO WHICH ONES SHOULD BE RENAMED TOGETHER
- //
- ///////////////////////////////////////////////////////////////////////////
-
- protected static class Ident
- {
- private String name;
- private HashMap<String, LineCol[]> references;
-
- public Ident(String name)
- {
- this.name = name;
- this.references = new HashMap<String, LineCol[]>();
- }
-
- public Ident(String filename, String name, LineCol[] referencesInFile)
- {
- this(name);
- addReferences(filename, referencesInFile);
- }
-
- public void addReferences(String filename, LineCol[] referencesInFile)
- {
- this.references.put(filename, referencesInFile);
- }
-
- public String getName()
- {
- return this.name;
- }
-
- public Set<String> getFiles()
- {
- return this.references.keySet();
- }
-
- public LineCol[] getReferences(String filename)
- {
- return this.references.get(filename);
- }
- }
-
- protected Ident var(String name) { return new Ident(name); }
- protected Ident var(String filename, String name, LineCol[] refs) { return new Ident(filename, name, refs); }
- protected LineCol lc(int line, int col) { return new LineCol(line, col); }
-
- ///////////////////////////////////////////////////////////////////////////
- //
- // SUITE BUILDING
- //
- ///////////////////////////////////////////////////////////////////////////
-
- private TestSuite currentSubSuite = null;
-
- protected void startTests(String description)
- {
- currentSubSuite = new TestSuite();
- currentSubSuite.setName(description);
- }
-
- protected void addSuccessTests(Ident ident, String newName)
- {
- TestSuite subSubSuite = new TestSuite();
- subSubSuite.setName("Renaming " + describe(ident, newName));
-
- for (String filename : ident.getFiles())
- for (LineCol position : ident.getReferences(filename))
- subSubSuite.addTest(new RenameTestCase.ExpectSuccess(filename, ident, position, newName));
-
- currentSubSuite.addTest(subSubSuite);
- }
-
- protected void addPreconditionTests(Ident ident, String newName)
- {
- TestSuite subSubSuite = new TestSuite();
- subSubSuite.setName("Attempting to rename " + describe(ident, newName));
-
- for (String filename : ident.getFiles())
- for (LineCol position : ident.getReferences(filename))
- subSubSuite.addTest(new RenameTestCase.ExpectFailure(filename, ident, position, newName));
-
- currentSubSuite.addTest(subSubSuite);
- }
-
- private String describe(Ident ident, String newName)
- {
- return ident.name + " to " + newName;
- }
-
- protected void endTests()
- {
- addTest(currentSubSuite);
- currentSubSuite = null;
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/search/tests/ManualSearchPageTests.txt b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/search/tests/ManualSearchPageTests.txt
deleted file mode 100644
index 81cf5a8..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/search/tests/ManualSearchPageTests.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-Fortran Search is displayed in the Fortran perspective:
-1: Launch eclipse with the Photran plugin.
-2: Ensure that the workspace is in the Fortran Perspective
- (Window->Open Perspective-> Other-> Fortran)
-3: Select Search from the menu bar
-4: "Fortran Search" should be in the dropdown menu.
-
-
-Fortran Search is among the choices in the Search Page
-1: Launch eclipse with the Photran plugin.
-2: Ensure that the workspace is in the Fortran Perspective
- (Window->Open Perspective-> Other-> Fortran)
-3: Select Search from the menu bar
-4: Select Search from the dropdown menu
-5: "Fortran Search" should be one of the tabs listed in the Search dialog
-
-
-Search Button is disallowed for empty strings
-1: Launch eclipse with the Photran plugin.
-2: Ensure that the workspace is in the Fortran Perspective
- (Window->Open Perspective-> Other-> Fortran)
-3: Select Search-> Fortran Search
-4: Delete any text in the "Search pattern" text box
-5: The search button should be disabled
-
-
-Search Button is disallowed if no types are specified
-1: Launch eclipse with the Photran plugin.
-2: Ensure that the workspace is in the Fortran Perspective
- (Window->Open Perspective-> Other-> Fortran)
-3: Select Search-> Fortran Search
-4: Enter any characters into the "Search Pattern" text box
-5: Uncheck all check boxes in the "Search for" area
- (Common block, Function, Subroutine, Module, Variable, Program)
-6: The "Search" button should be disabled
-
-
-Checked Regular Expression checkbox hides glob string instructions
-1: Launch eclipse with the Photran plugin.
-2: Ensure that the workspace is in the Fortran Perspective
- (Window->Open Perspective-> Other-> Fortran)
-3: Select Search-> Fortran Search
-4: Check the Regular Expression checkbox
-5: The "glob string instructions" (* = any string, ? = any character) should be hidden
-
-
-Unchecked Regular Expression checkbox shows glob string instructions
-1: Launch eclipse with the Photran plugin.
-2: Ensure that the workspace is in the Fortran Perspective
- (Window->Open Perspective-> Other-> Fortran)
-3: Select Search-> Fortran Search
-4: Uncheck the Regular Expression checkbox
-5: The "glob string instructions" (* = any string, ? = any character)
- should be visible under the search box
-
-
-Search box saves last search settings
-1: Launch eclipse with the Photran plugin.
-2: Ensure that the workspace is in the Fortran Perspective
- (Window->Open Perspective-> Other-> Fortran)
-3: Select Search-> Fortran Search
-4: Select any desired search criteria which will allow for a search
-5: Perform the search (it does not matter if the search fails)
-6: Select Search-> Fortran Search
-7: The settings from the previous search should be enabled, and the string used in
- the last search should be in the drop-down menu for the text box
-
-
-Search button activates a search
-1: Launch eclipse with the Photran plugin.
-2: Ensure that the workspace is in the Fortran Perspective
- (Window->Open Perspective-> Other-> Fortran)
-3: Select Search-> Fortran Search
-4: Select any desired search criteria which will allow for a search
-5: Click the Search button
-6: Ensure that the Search tab becomes active, indicating that the search command
- was executed
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/search/tests/VPGSearchTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/search/tests/VPGSearchTestCase.java
deleted file mode 100644
index e858272..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/search/tests/VPGSearchTestCase.java
+++ /dev/null
@@ -1,141 +0,0 @@
-package org.eclipse.photran.search.tests;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Scanner;
-
-import org.eclipse.cdt.core.tests.BaseTestFramework;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.photran.internal.ui.search.ReferenceSearchResult;
-import org.eclipse.photran.internal.ui.search.VPGSearchMatch;
-import org.eclipse.photran.internal.ui.search.VPGSearchQuery;
-import org.eclipse.photran.refactoring.tests.Activator;
-import org.eclipse.search.ui.IQueryListener;
-import org.eclipse.search.ui.ISearchQuery;
-import org.eclipse.search.ui.ISearchResult;
-import org.eclipse.search.ui.NewSearchUI;
-import org.eclipse.search.ui.text.Match;
-
-/**
- * A single test case for the Prototype Fortran Search
- * Parameters include filenames, scope, and the string to search for
- *
- * @author Jeff Dammeyer, Andrew Deason, Joe Digiovanna, Nick Sexmith
- */
-public class VPGSearchTestCase extends BaseTestFramework
-{
- private static final String DIR = "vpg-search-test-code";
-
- private static NullProgressMonitor pm = new NullProgressMonitor();
-
- protected String searchString;
- protected int searchFlags;
- protected ArrayList<VPGSearchMatch> matches;
- protected ArrayList<Match> initMatches;
- protected boolean isRegex;
- protected ArrayList<IResource> scope;
-
- public VPGSearchTestCase() {;} // when JUnit invokes a subclass outside a test suite
-
-
- public VPGSearchTestCase(String searchString, int searchFlags,
- ArrayList<Match> matches, boolean isRegex)
- {
- this.setName("test");
- this.searchString = searchString;
- this.searchFlags = searchFlags;
- this.isRegex = isRegex;
- this.matches = new ArrayList<VPGSearchMatch>(matches.size());
- scope = new ArrayList<IResource>();
- initMatches = matches;
-
-
- }
-
-
- private IFile getFile(String filename) throws Exception {
- Scanner sc = new Scanner(Activator.getDefault().getBundle().getResource(DIR + "/" + filename).openStream());
- sc.useDelimiter("\\A");
- String contents = sc.next();
- sc.close();
- return super.importFile(filename, contents);
- }
-
- @Override
- protected void setUp() throws Exception {
- if (searchString == null) return; // when JUnit invokes this outside a test suite
- super.setUp();
- convertMatches();
- createProject();
- }
-
- private void convertMatches() throws Exception {
- for (Match m : initMatches)
- {
- IFile file = getFile((String)(m.getElement()));
- matches.add(new VPGSearchMatch(file, m.getOffset(), m.getLength()));
-
-
- }
- }
-
- private void createProject(){
- try{
- scope.add(getFile("foo.f90"));
- scope.add(getFile("implicitTest.f90"));
- } catch (Exception e){
- System.out.println("Error in createProject(): "+e);
- }
- }
-
- private ReferenceSearchResult runQuery(VPGSearchQuery job){
-
- final ISearchResult result[]= new ISearchResult[1];
-
- IQueryListener listener= new IQueryListener() {
- public void queryAdded(ISearchQuery query) {}
- public void queryFinished(ISearchQuery query) {
- result[0]= query.getSearchResult();
- }
- public void queryRemoved(ISearchQuery query) {}
- public void queryStarting(ISearchQuery query) {}
- };
-
- NewSearchUI.addQueryListener(listener);
- NewSearchUI.runQueryInForeground(new IRunnableContext() {
- public void run(boolean fork, boolean cancelable,
- IRunnableWithProgress runnable)
- throws InvocationTargetException, InterruptedException {
- runnable.run(pm);
- }
- }, job);
-
- assertTrue(result[0] instanceof ReferenceSearchResult);
- return (ReferenceSearchResult)result[0];
- }
-
- public void test() throws Exception
- {
- if (searchString == null) return; // when JUnit invokes this outside a test suite
-
- VPGSearchQuery job = new VPGSearchQuery(scope, "Scope description", searchString,
- searchFlags, isRegex);
-
- ReferenceSearchResult res = runQuery(job);
- int count = 0;
- for(Object obj : res.getElements()) {
- for (Match m : res.getMatches(obj)) {
- if (matches.contains((VPGSearchMatch)m))
- {
- count++;
- }
-
- }
- }
- assertEquals(matches.size(),count);
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/search/tests/VPGSearchTestSuite.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/search/tests/VPGSearchTestSuite.java
deleted file mode 100644
index ae50145..0000000
--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/search/tests/VPGSearchTestSuite.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package org.eclipse.photran.search.tests;
-
-import java.util.ArrayList;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.photran.internal.ui.search.VPGSearchQuery;
-import org.eclipse.search.ui.text.Match;
-
-/**
- * The suite of tests for testing search functionality
- *
- * @author Jeff Dammeyer, Andrew Deason, Joe Digiovanna, Nick Sexmith
- */
-public class VPGSearchTestSuite extends TestSuite
-{
- /**
- * Adds all the tests to the suite for searching tests
- */
- public static Test suite() throws Exception
- {
- TestSuite suite = new TestSuite();
- ArrayList<Match> matches = new ArrayList<Match>();
-
-
- //test 1
- //Does a basic test across two different files
- matches.add(new Match("foo.f90",23,1));
- matches.add(new Match("foo.f90",30,1));
- matches.add(new Match("implicitTest.f90",22,1));
- suite.addTest(getSuiteFor("testOne", new VPGSearchTestCase("a",
- VPGSearchQuery.FIND_ALL_OCCURANCES | VPGSearchQuery.FIND_ALL_TYPES, matches, false)));
-
- //test 2
- //Same as 2 except different search string
- matches = new ArrayList<Match>();
- matches.add(new Match("foo.f90",26,1));
- matches.add(new Match("implicitTest.f90",67,1));
- suite.addTest(getSuiteFor("testTwo", new VPGSearchTestCase("b",
- VPGSearchQuery.FIND_ALL_OCCURANCES | VPGSearchQuery.FIND_ALL_TYPES, matches, false)));
-
- //test 3
- //Tests FIND_DECLARATIONS to make sure it is different from FIND_ALL_OCCURANCES
- matches = new ArrayList<Match>();
- matches.add(new Match("foo.f90",23,1));
- suite.addTest(getSuiteFor("testThree", new VPGSearchTestCase("a",
- VPGSearchQuery.FIND_DECLARATIONS | VPGSearchQuery.FIND_ALL_TYPES, matches, false)));
-
-// //test 4
-// //Tests FIND_REFERENCES
-// matches = new ArrayList<Match>();
-// matches.add(new Match("foo.f90",30,1));
-// matches.add(new Match("implicitTest.f90",22,1));
-// suite.addTest(getSuiteFor("testFour", new VPGSearchTestCase("a",
-// VPGSearchQuery.FIND_REFERENCES | VPGSearchQuery.FIND_ALL_TYPES, matches, false)));
-
- //test 5
- //Tests FIND_FUNCTION to make sure it is different from test 6
- matches = new ArrayList<Match>();
- suite.addTest(getSuiteFor("testFive", new VPGSearchTestCase("main",
- VPGSearchQuery.FIND_ALL_OCCURANCES | VPGSearchQuery.FIND_FUNCTION, matches, false)));
-
-
- //test 6
- //Tests FIND_PROGRAM so it's not the same as FIND_FUNCTION
- matches = new ArrayList<Match>();
- matches.add(new Match("foo.f90",8,4));
- suite.addTest(getSuiteFor("testSix", new VPGSearchTestCase("main",
- VPGSearchQuery.FIND_ALL_OCCURANCES | VPGSearchQuery.FIND_PROGRAM, matches, false)));
-
- //test 7
- //Tests the glob '?'
- suite.addTest(getSuiteFor("testSeven", new VPGSearchTestCase("ma?n",
- VPGSearchQuery.FIND_ALL_OCCURANCES | VPGSearchQuery.FIND_PROGRAM, matches, false)));
-
- //test 8
- //Tests the glob '*'
- suite.addTest(getSuiteFor("testEight", new VPGSearchTestCase("m*n",
- VPGSearchQuery.FIND_ALL_OCCURANCES | VPGSearchQuery.FIND_PROGRAM, matches, false)));
-
- //test 9
- //Tests regex
- suite.addTest(getSuiteFor("testNine", new VPGSearchTestCase("m.*",
- VPGSearchQuery.FIND_ALL_OCCURANCES | VPGSearchQuery.FIND_PROGRAM, matches, true)));
-
-
- return suite;
- }
-
-
- private static TestSuite getSuiteFor(String baseFilename, VPGSearchTestCase testCase)
- {
- TestSuite subSuite = new TestSuite(baseFilename);
- subSuite.addTest(testCase);
- return subSuite;
- }
-}
diff --git a/org.eclipse.photran.core.vpg.tests/vpg-list-test-code/module1.f90 b/org.eclipse.photran.core.vpg.tests/vpg-list-test-code/module1.f90
deleted file mode 100644
index 596ca54..0000000
--- a/org.eclipse.photran.core.vpg.tests/vpg-list-test-code/module1.f90
+++ /dev/null
@@ -1,2 +0,0 @@
-module module1
-end module
diff --git a/org.eclipse.photran.core.vpg.tests/vpg-list-test-code/module2-module3.f90 b/org.eclipse.photran.core.vpg.tests/vpg-list-test-code/module2-module3.f90
deleted file mode 100644
index 72fc5c3..0000000
--- a/org.eclipse.photran.core.vpg.tests/vpg-list-test-code/module2-module3.f90
+++ /dev/null
@@ -1,5 +0,0 @@
-module module2
-end module
-
-module module3
-end module
diff --git a/org.eclipse.photran.core.vpg.tests/vpg-list-test-code/module4.f90 b/org.eclipse.photran.core.vpg.tests/vpg-list-test-code/module4.f90
deleted file mode 100644
index 63ee352..0000000
--- a/org.eclipse.photran.core.vpg.tests/vpg-list-test-code/module4.f90
+++ /dev/null
@@ -1,2 +0,0 @@
-module module4
-end module
diff --git a/org.eclipse.photran.core.vpg.tests/vpg-list-test-code/use-module1.f90 b/org.eclipse.photran.core.vpg.tests/vpg-list-test-code/use-module1.f90
deleted file mode 100644
index dd423e9..0000000
--- a/org.eclipse.photran.core.vpg.tests/vpg-list-test-code/use-module1.f90
+++ /dev/null
@@ -1,2 +0,0 @@
-use module1
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/vpg-list-test-code/use-module4.f90 b/org.eclipse.photran.core.vpg.tests/vpg-list-test-code/use-module4.f90
deleted file mode 100644
index 993d263..0000000
--- a/org.eclipse.photran.core.vpg.tests/vpg-list-test-code/use-module4.f90
+++ /dev/null
@@ -1,2 +0,0 @@
-use module4
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/vpg-search-test-code/foo.f90 b/org.eclipse.photran.core.vpg.tests/vpg-search-test-code/foo.f90
deleted file mode 100644
index 40cb623..0000000
--- a/org.eclipse.photran.core.vpg.tests/vpg-search-test-code/foo.f90
+++ /dev/null
@@ -1,4 +0,0 @@
-program main
- integer a, b
- a = 5
-end program
diff --git a/org.eclipse.photran.core.vpg.tests/vpg-search-test-code/implicitTest.f90 b/org.eclipse.photran.core.vpg.tests/vpg-search-test-code/implicitTest.f90
deleted file mode 100644
index 9b24b0c..0000000
--- a/org.eclipse.photran.core.vpg.tests/vpg-search-test-code/implicitTest.f90
+++ /dev/null
@@ -1,10 +0,0 @@
-program ImplicitTest
- a = 1
- call s
- stop
-contains
- subroutine s
- b = 3
- return
- end subroutine
-end program ImplicitTest
diff --git a/org.eclipse.photran.core.vpg.tests/vpg-search-test-code/moduleInclusion.F90 b/org.eclipse.photran.core.vpg.tests/vpg-search-test-code/moduleInclusion.F90
deleted file mode 100644
index 55c451c..0000000
--- a/org.eclipse.photran.core.vpg.tests/vpg-search-test-code/moduleInclusion.F90
+++ /dev/null
@@ -1,17 +0,0 @@
-PROGRAM hi
-!this should work
-
-
- USE moduleZiggurat
- IMPLICIT NONE
-
- REAL :: x
- INTEGER :: i
-
- DO i = 1, 10000
- x = uni( )
- END DO
- WRITE(*,*) x
-
-END PROGRAM hi
-
diff --git a/org.eclipse.photran.core.vpg.tests/vpg-search-test-code/nameScoping.F90 b/org.eclipse.photran.core.vpg.tests/vpg-search-test-code/nameScoping.F90
deleted file mode 100644
index 66fd2c3..0000000
--- a/org.eclipse.photran.core.vpg.tests/vpg-search-test-code/nameScoping.F90
+++ /dev/null
@@ -1,25 +0,0 @@
-
-SUBROUTINE pgmName
- PRINT *,'Hello'
-END SUBROUTINE pgmName
-
-
-
-PROGRAM pgmName
-!this should work
-
-
- USE pgmName
- IMPLICIT NONE
-
- REAL :: x
- INTEGER :: i
-
- DO i = 1, 10000
- x = hi( )
- END DO
- WRITE(*,*) x
-
- CALL pgmName
-
-END PROGRAM pgmName