ianhinder / Kranc

A Mathematica package for generating code for solving time dependent partial differential equations
http://kranccode.org
GNU General Public License v2.0
29 stars 10 forks source link

Cannot parse interface.ccl from AEIThorns/Trigger #118

Open ianhinder opened 9 years ago

ianhinder commented 9 years ago

The Kranc Funwave example inherits from other thorns, and Kranc uses the interface.ccl files of the Cactus tree to determine the mapping between variables and groups. This requires that it can successfully parse all the interface.ccl files. The current grammar (Kranc/Auxiliary/Grammars/intrfccl.peg) does not parse AEIThorns/Trigger/interface.ccl. It gives the error

cd Kranc/Examples
$ ../Bin/kranc Funwave.kranc 
Using Kranc installation at ../Bin/..
Mathematica 10.0 for Mac OS X x86 (64-bit)
Copyright 1988-2014 Wolfram Research, Inc.
Creating thorn from Funwave.kranc
Searching for inherited groups...
Error: 
"Failed to parse input file: "
"../Bin/../../../arrangements/AEIThorns/Trigger/interface.ccl"
"Expected one of: [t, clude] 3 in {[INCLUDES, INCLUDE]}: 'in|herits: IO'"
in CreateThornFromKrancScript/CreateKrancThornTT2/KrancTensor`Private`InheritedGroups/
KrancTensor`Private`thornOfImplementation/KrancTensor`Private`implementationOfThorn/
KrancTensor`Private`interfaceTreeOfThorn/KrancTensor`Private`parseInterfaceCCL/ParsePEG

Since Cactus is able to parse this file, this suggests that the grammar is different. One solution would be to use the Cactus grammar in Kranc (both use Piraha, so this should be straightforward). In fact, it would be very good if the Cactus grammars were stored as text files in the Cactus tree, and Kranc could use them directly, rather than using its own copy.

See also #117 about skipping interface files which fail to parse.