diff --git a/.bzrignore b/.bzrignore index ee56d8e3e3242e1cc21141f328dae3709eb32b82..563f5df3a4db8ac4a1c6904cf3c2600fc3df39de 100644 --- a/.bzrignore +++ b/.bzrignore @@ -158,3 +158,7 @@ examples/actors/xdfAST/XsiNoNamespaceSchemaLocation.java examples/actors/xdfAST/xdf.jj examples/actors/xlimAST/xlim.jj examples/scxml/scxml.jjt +examples/actors/xdfAST +examples/actors/xlimAST +examples/actors/new_sdftest.xdf +examples/actors/AddOne_0_Double_0_SubOne_0.xlim diff --git a/examples/actors/AddFiveOnce_0.xlim b/examples/actors/AddFiveOnce_0.xlim index b6fd5d81f15b8c28bde9628ff9e05ea13c7d3ce4..d4edba5dffe40ea6cd0589cb8e420868c929f3b2 100644 --- a/examples/actors/AddFiveOnce_0.xlim +++ b/examples/actors/AddFiveOnce_0.xlim @@ -3,6 +3,7 @@ <actor-port dir="in" name="In" size="32" typeName="int"/> <actor-port dir="out" name="Out" size="32" typeName="int"/> <!--Action 0$id$w146ab2--><module autostart="false" kind="action" name="init"> + <note kind="consumptionRates" name="In" value="1"/> <operation kind="pinRead" portName="In" removable="no" style="simple"> <port dir="out" size="32" source="0$id$w146ab2b3b1" typeName="int"/> </operation> @@ -13,23 +14,25 @@ <port dir="in" source="0$id$w146ab2b3b1"/> <port dir="out" size="32" source="0$id$w146ab2b5b1ab1" typeName="int"/> </operation> - <!--Expr 1$id$w561ab3b5b1ab1b1--><operation kind="$literal_Integer" value="5"> - <port dir="out" size="4" source="1$id$w561ab3b5b1ab1b1" typeName="int"/> + <!--Expr 2$id$w911ab4b5b1ab1b1--><operation kind="$literal_Integer" value="5"> + <port dir="out" size="4" source="2$id$w911ab4b5b1ab1b1" typeName="int"/> </operation> - <!--Expr 1$id$w561ab3b5b1a--><operation kind="$add"> + <!--Expr 1$id$w516ab3b5b1a--><operation kind="$add"> <port dir="in" source="0$id$w146ab2b5b1ab1"/> - <port dir="in" source="1$id$w561ab3b5b1ab1b1"/> - <port dir="out" size="33" source="1$id$w561ab3b5b1a" typeName="int"/> + <port dir="in" source="2$id$w911ab4b5b1ab1b1"/> + <port dir="out" size="33" source="1$id$w516ab3b5b1a" typeName="int"/> </operation> <!--Expr 0$id$w146ab2b5b1--><operation kind="noop"> - <port dir="in" source="1$id$w561ab3b5b1a"/> + <port dir="in" source="1$id$w516ab3b5b1a"/> <port dir="out" size="33" source="0$id$w146ab2b5b1" typeName="int"/> </operation> <operation kind="pinWrite" portName="Out" style="simple"> <port dir="in" source="0$id$w146ab2b5b1"/> </operation> + <note kind="productionRates" name="Out" value="1"/> </module> <!--Action 0$id$w146ab3--><module autostart="false" kind="action" name="run"> + <note kind="consumptionRates" name="In" value="1"/> <operation kind="pinRead" portName="In" removable="no" style="simple"> <port dir="out" size="32" source="0$id$w146ab3b3b1" typeName="int"/> </operation> @@ -47,18 +50,22 @@ <operation kind="pinWrite" portName="Out" style="simple"> <port dir="in" source="0$id$w146ab3b5b1"/> </operation> + <note kind="productionRates" name="Out" value="1"/> </module> - <stateVar name="0$id$w146a$fsm$init"> - <initValue size="1" typeName="bool" value="1"/> - </stateVar> - <stateVar name="0$id$w146a$fsm$run"> - <initValue size="1" typeName="bool" value="0"/> + <stateVar name="currentState"> + <initValue size="32" typeName="int" value="1"/> </stateVar> <module autostart="true" kind="action-scheduler" name="action-scheduler" sourceName="action-scheduler"> <operation kind="$literal_Integer" value="1"> <port dir="out" size="1" source="0$id$w146a$sched$true" typeName="bool"/> </operation> + <operation kind="$literal_Integer" value="1"> + <port dir="out" size="32" source="0$id$w146a$fsm$init" typeName="int"/> + </operation> + <operation kind="$literal_Integer" value="2"> + <port dir="out" size="32" source="0$id$w146a$fsm$run" typeName="int"/> + </operation> <module kind="loop"> <module decision="0$id$w146a$sched$true$loop" kind="test"> <operation kind="noop"> @@ -108,29 +115,46 @@ <port dir="in" source="0$id$w146ab3b3$ready"/> <port dir="out" size="1" source="0$id$w146ab3$guard" typeName="bool"/> </operation> - <operation kind="pinStatus" portName="Out"> - <port dir="out" size="1" source="0$id$w146ab1$status" typeName="bool"/> + <operation kind="pinAvail" portName="Out"> + <port dir="out" size="32" source="0$id$w146ab1$status" typeName="int"/> </operation> - <operation kind="$and"> + <operation kind="$literal_Integer" value="1"> + <port dir="out" size="32" source="0$id$w146ab2$Out$exprCount" typeName="int"/> + </operation> + <operation kind="$ge"> <port dir="in" source="0$id$w146ab1$status"/> - <port dir="out" size="1" source="0$id$w146ab2$fireable" typeName="bool"/> + <port dir="in" source="0$id$w146ab2$Out$exprCount"/> + <port dir="out" size="1" source="0$id$w146ab2$Out" typeName="bool"/> + </operation> + <operation kind="$literal_Integer" value="1"> + <port dir="out" size="1" source="0$id$w146ab2$true" typeName="bool"/> </operation> <operation kind="$and"> + <port dir="in" source="0$id$w146ab2$true"/> + <port dir="in" source="0$id$w146ab2$Out"/> + <port dir="out" size="1" source="0$id$w146ab2$fireable" typeName="bool"/> + </operation> + <operation kind="$literal_Integer" value="1"> + <port dir="out" size="32" source="0$id$w146ab3$Out$exprCount" typeName="int"/> + </operation> + <operation kind="$ge"> <port dir="in" source="0$id$w146ab1$status"/> - <port dir="out" size="1" source="0$id$w146ab3$fireable" typeName="bool"/> + <port dir="in" source="0$id$w146ab3$Out$exprCount"/> + <port dir="out" size="1" source="0$id$w146ab3$Out" typeName="bool"/> </operation> - <operation kind="noop"> - <port dir="in" source="0$id$w146a$fsm$init"/> - <port dir="out" size="1" source="0$id$w146a$fsm$copy$init" typeName="bool"/> + <operation kind="$literal_Integer" value="1"> + <port dir="out" size="1" source="0$id$w146ab3$true" typeName="bool"/> </operation> - <operation kind="noop"> - <port dir="in" source="0$id$w146a$fsm$run"/> - <port dir="out" size="1" source="0$id$w146a$fsm$copy$run" typeName="bool"/> + <operation kind="$and"> + <port dir="in" source="0$id$w146ab3$true"/> + <port dir="in" source="0$id$w146ab3$Out"/> + <port dir="out" size="1" source="0$id$w146ab3$fireable" typeName="bool"/> </operation> <module kind="if"> <module decision="init$enabled" kind="test"> - <operation kind="noop"> - <port dir="in" source="0$id$w146a$fsm$copy$init"/> + <operation kind="$eq"> + <port dir="in" source="0$id$w146a$fsm$init"/> + <port dir="in" source="currentState"/> <port dir="out" size="1" source="init$enabled" typeName="bool"/> </operation> </module> @@ -152,17 +176,8 @@ </module> <module kind="then"> <operation kind="taskCall" target="init"/> - <operation kind="$literal_Integer" value="0"> - <port dir="out" size="1" source="d985e1$false" typeName="bool"/> - </operation> - <operation kind="$literal_Integer" value="1"> - <port dir="out" size="1" source="d985e1$true" typeName="bool"/> - </operation> - <operation kind="assign" target="0$id$w146a$fsm$init"> - <port dir="in" source="d985e1$false"/> - </operation> - <operation kind="assign" target="0$id$w146a$fsm$run"> - <port dir="in" source="d985e1$true"/> + <operation kind="assign" target="currentState"> + <port dir="in" source="0$id$w146a$fsm$run"/> </operation> </module> </module> @@ -172,8 +187,9 @@ <module kind="else"> <module kind="if"> <module decision="run$enabled" kind="test"> - <operation kind="noop"> - <port dir="in" source="0$id$w146a$fsm$copy$run"/> + <operation kind="$eq"> + <port dir="in" source="0$id$w146a$fsm$run"/> + <port dir="in" source="currentState"/> <port dir="out" size="1" source="run$enabled" typeName="bool"/> </operation> </module> @@ -195,14 +211,8 @@ </module> <module kind="then"> <operation kind="taskCall" target="run"/> - <operation kind="$literal_Integer" value="0"> - <port dir="out" size="1" source="d986e1$false" typeName="bool"/> - </operation> - <operation kind="$literal_Integer" value="1"> - <port dir="out" size="1" source="d986e1$true" typeName="bool"/> - </operation> - <operation kind="assign" target="0$id$w146a$fsm$run"> - <port dir="in" source="d986e1$true"/> + <operation kind="assign" target="currentState"> + <port dir="in" source="0$id$w146a$fsm$run"/> </operation> </module> </module> diff --git a/examples/actors/AddOne_0.xlim b/examples/actors/AddOne_0.xlim index 96132a7ab524f5c6868caac50524bbbb1be508bb..ad5ad180fb1985dde3731dbb13af7495f54bea5b 100644 --- a/examples/actors/AddOne_0.xlim +++ b/examples/actors/AddOne_0.xlim @@ -3,6 +3,7 @@ <actor-port dir="in" name="In" size="32" typeName="int"/> <actor-port dir="out" name="Out" size="32" typeName="int"/> <!--Action 0$id$w86ab2--><module autostart="false" kind="action" name="actionAtLine_3"> + <note kind="consumptionRates" name="In" value="1"/> <operation kind="pinRead" portName="In" removable="no" style="simple"> <port dir="out" size="32" source="0$id$w86ab2b1b1" typeName="int"/> </operation> @@ -12,22 +13,26 @@ <port dir="in" source="0$id$w86ab2b1b1"/> <port dir="out" size="32" source="0$id$w86ab2b3b1ab1" typeName="int"/> </operation> - <!--Expr 1$id$w352ab3b3b1ab1b1--><operation kind="$literal_Integer" value="1"> - <port dir="out" size="2" source="1$id$w352ab3b3b1ab1b1" typeName="int"/> + <!--Expr 2$id$w585ab4b3b1ab1b1--><operation kind="$literal_Integer" value="1"> + <port dir="out" size="2" source="2$id$w585ab4b3b1ab1b1" typeName="int"/> </operation> - <!--Expr 1$id$w352ab3b3b1a--><operation kind="$add"> + <!--Expr 1$id$w336ab3b3b1a--><operation kind="$add"> <port dir="in" source="0$id$w86ab2b3b1ab1"/> - <port dir="in" source="1$id$w352ab3b3b1ab1b1"/> - <port dir="out" size="33" source="1$id$w352ab3b3b1a" typeName="int"/> + <port dir="in" source="2$id$w585ab4b3b1ab1b1"/> + <port dir="out" size="33" source="1$id$w336ab3b3b1a" typeName="int"/> </operation> <!--Expr 0$id$w86ab2b3b1--><operation kind="noop"> - <port dir="in" source="1$id$w352ab3b3b1a"/> + <port dir="in" source="1$id$w336ab3b3b1a"/> <port dir="out" size="33" source="0$id$w86ab2b3b1" typeName="int"/> </operation> <operation kind="pinWrite" portName="Out" style="simple"> <port dir="in" source="0$id$w86ab2b3b1"/> </operation> + <note kind="productionRates" name="Out" value="1"/> </module> + <stateVar name="currentState"> + <initValue size="32" typeName="int" value="1"/> + </stateVar> <module autostart="true" kind="action-scheduler" name="action-scheduler" sourceName="action-scheduler"> <operation kind="$literal_Integer" value="1"> @@ -63,11 +68,23 @@ <port dir="in" source="0$id$w86ab2b1$ready"/> <port dir="out" size="1" source="0$id$w86ab2$guard" typeName="bool"/> </operation> - <operation kind="pinStatus" portName="Out"> - <port dir="out" size="1" source="0$id$w86ab1$status" typeName="bool"/> + <operation kind="pinAvail" portName="Out"> + <port dir="out" size="32" source="0$id$w86ab1$status" typeName="int"/> </operation> - <operation kind="$and"> + <operation kind="$literal_Integer" value="1"> + <port dir="out" size="32" source="0$id$w86ab2$Out$exprCount" typeName="int"/> + </operation> + <operation kind="$ge"> <port dir="in" source="0$id$w86ab1$status"/> + <port dir="in" source="0$id$w86ab2$Out$exprCount"/> + <port dir="out" size="1" source="0$id$w86ab2$Out" typeName="bool"/> + </operation> + <operation kind="$literal_Integer" value="1"> + <port dir="out" size="1" source="0$id$w86ab2$true" typeName="bool"/> + </operation> + <operation kind="$and"> + <port dir="in" source="0$id$w86ab2$true"/> + <port dir="in" source="0$id$w86ab2$Out"/> <port dir="out" size="1" source="0$id$w86ab2$fireable" typeName="bool"/> </operation> <module kind="if"> diff --git a/examples/actors/Double_0.xlim b/examples/actors/Double_0.xlim index 538a401fa1ef727e17795f4301fd9f49e52b5950..8f019d3b8a2eddd002a9c69d37cf94a08042dcf4 100644 --- a/examples/actors/Double_0.xlim +++ b/examples/actors/Double_0.xlim @@ -3,6 +3,7 @@ <actor-port dir="in" name="In" size="32" typeName="int"/> <actor-port dir="out" name="Out" size="32" typeName="int"/> <!--Action 0$id$w86ab2--><module autostart="false" kind="action" name="actionAtLine_3"> + <note kind="consumptionRates" name="In" value="1"/> <operation kind="pinRead" portName="In" removable="no" style="simple"> <port dir="out" size="32" source="0$id$w86ab2b1b1" typeName="int"/> </operation> @@ -12,22 +13,26 @@ <port dir="in" source="0$id$w86ab2b1b1"/> <port dir="out" size="32" source="0$id$w86ab2b3b1ab1" typeName="int"/> </operation> - <!--Expr 1$id$w352ab3b3b1ab1b1--><operation kind="$literal_Integer" value="2"> - <port dir="out" size="3" source="1$id$w352ab3b3b1ab1b1" typeName="int"/> + <!--Expr 2$id$w585ab4b3b1ab1b1--><operation kind="$literal_Integer" value="2"> + <port dir="out" size="3" source="2$id$w585ab4b3b1ab1b1" typeName="int"/> </operation> - <!--Expr 1$id$w352ab3b3b1a--><operation kind="$mul"> + <!--Expr 1$id$w336ab3b3b1a--><operation kind="$mul"> <port dir="in" source="0$id$w86ab2b3b1ab1"/> - <port dir="in" source="1$id$w352ab3b3b1ab1b1"/> - <port dir="out" size="32" source="1$id$w352ab3b3b1a" typeName="int"/> + <port dir="in" source="2$id$w585ab4b3b1ab1b1"/> + <port dir="out" size="32" source="1$id$w336ab3b3b1a" typeName="int"/> </operation> <!--Expr 0$id$w86ab2b3b1--><operation kind="noop"> - <port dir="in" source="1$id$w352ab3b3b1a"/> + <port dir="in" source="1$id$w336ab3b3b1a"/> <port dir="out" size="32" source="0$id$w86ab2b3b1" typeName="int"/> </operation> <operation kind="pinWrite" portName="Out" style="simple"> <port dir="in" source="0$id$w86ab2b3b1"/> </operation> + <note kind="productionRates" name="Out" value="1"/> </module> + <stateVar name="currentState"> + <initValue size="32" typeName="int" value="1"/> + </stateVar> <module autostart="true" kind="action-scheduler" name="action-scheduler" sourceName="action-scheduler"> <operation kind="$literal_Integer" value="1"> @@ -63,11 +68,23 @@ <port dir="in" source="0$id$w86ab2b1$ready"/> <port dir="out" size="1" source="0$id$w86ab2$guard" typeName="bool"/> </operation> - <operation kind="pinStatus" portName="Out"> - <port dir="out" size="1" source="0$id$w86ab1$status" typeName="bool"/> + <operation kind="pinAvail" portName="Out"> + <port dir="out" size="32" source="0$id$w86ab1$status" typeName="int"/> </operation> - <operation kind="$and"> + <operation kind="$literal_Integer" value="1"> + <port dir="out" size="32" source="0$id$w86ab2$Out$exprCount" typeName="int"/> + </operation> + <operation kind="$ge"> <port dir="in" source="0$id$w86ab1$status"/> + <port dir="in" source="0$id$w86ab2$Out$exprCount"/> + <port dir="out" size="1" source="0$id$w86ab2$Out" typeName="bool"/> + </operation> + <operation kind="$literal_Integer" value="1"> + <port dir="out" size="1" source="0$id$w86ab2$true" typeName="bool"/> + </operation> + <operation kind="$and"> + <port dir="in" source="0$id$w86ab2$true"/> + <port dir="in" source="0$id$w86ab2$Out"/> <port dir="out" size="1" source="0$id$w86ab2$fireable" typeName="bool"/> </operation> <module kind="if"> diff --git a/examples/actors/MergeActors.java b/examples/actors/MergeActors.java index 263ff7f5847e6bb7b8712c75e352fad49683fd10..f5cce19c23055e5ee01ac7bbda015cf0c6003df3 100644 --- a/examples/actors/MergeActors.java +++ b/examples/actors/MergeActors.java @@ -9,6 +9,8 @@ import xdfAST.Start; import xdfAST.Instance; import java.util.HashSet; +import java.io.PrintStream; +import java.io.FileNotFoundException; public class MergeActors extends XdfParser { public static void main(String args[]) { @@ -27,7 +29,11 @@ public class MergeActors extends XdfParser { // } ast.mergeActors(); -// ast.prettyPrint("",System.out); + try { + ast.prettyPrint("",new PrintStream("new_"+args[0])); + } catch (FileNotFoundException e) { + System.out.println("Could not generate modified xdf file"); + } } } diff --git a/examples/actors/SubOne_0.xlim b/examples/actors/SubOne_0.xlim index 03b3721eca734463b27696fbf7ad1d4599f1e124..413bed6d92ac271159a5c3a54c5133cec764f043 100644 --- a/examples/actors/SubOne_0.xlim +++ b/examples/actors/SubOne_0.xlim @@ -3,6 +3,7 @@ <actor-port dir="in" name="In" size="32" typeName="int"/> <actor-port dir="out" name="Out" size="32" typeName="int"/> <!--Action 0$id$w86ab2--><module autostart="false" kind="action" name="actionAtLine_3"> + <note kind="consumptionRates" name="In" value="1"/> <operation kind="pinRead" portName="In" removable="no" style="simple"> <port dir="out" size="32" source="0$id$w86ab2b1b1" typeName="int"/> </operation> @@ -12,22 +13,26 @@ <port dir="in" source="0$id$w86ab2b1b1"/> <port dir="out" size="32" source="0$id$w86ab2b3b1ab1" typeName="int"/> </operation> - <!--Expr 1$id$w352ab3b3b1ab1b1--><operation kind="$literal_Integer" value="1"> - <port dir="out" size="2" source="1$id$w352ab3b3b1ab1b1" typeName="int"/> + <!--Expr 2$id$w585ab4b3b1ab1b1--><operation kind="$literal_Integer" value="1"> + <port dir="out" size="2" source="2$id$w585ab4b3b1ab1b1" typeName="int"/> </operation> - <!--Expr 1$id$w352ab3b3b1a--><operation kind="$sub"> + <!--Expr 1$id$w336ab3b3b1a--><operation kind="$sub"> <port dir="in" source="0$id$w86ab2b3b1ab1"/> - <port dir="in" source="1$id$w352ab3b3b1ab1b1"/> - <port dir="out" size="33" source="1$id$w352ab3b3b1a" typeName="int"/> + <port dir="in" source="2$id$w585ab4b3b1ab1b1"/> + <port dir="out" size="33" source="1$id$w336ab3b3b1a" typeName="int"/> </operation> <!--Expr 0$id$w86ab2b3b1--><operation kind="noop"> - <port dir="in" source="1$id$w352ab3b3b1a"/> + <port dir="in" source="1$id$w336ab3b3b1a"/> <port dir="out" size="33" source="0$id$w86ab2b3b1" typeName="int"/> </operation> <operation kind="pinWrite" portName="Out" style="simple"> <port dir="in" source="0$id$w86ab2b3b1"/> </operation> + <note kind="productionRates" name="Out" value="1"/> </module> + <stateVar name="currentState"> + <initValue size="32" typeName="int" value="1"/> + </stateVar> <module autostart="true" kind="action-scheduler" name="action-scheduler" sourceName="action-scheduler"> <operation kind="$literal_Integer" value="1"> @@ -63,11 +68,23 @@ <port dir="in" source="0$id$w86ab2b1$ready"/> <port dir="out" size="1" source="0$id$w86ab2$guard" typeName="bool"/> </operation> - <operation kind="pinStatus" portName="Out"> - <port dir="out" size="1" source="0$id$w86ab1$status" typeName="bool"/> + <operation kind="pinAvail" portName="Out"> + <port dir="out" size="32" source="0$id$w86ab1$status" typeName="int"/> </operation> - <operation kind="$and"> + <operation kind="$literal_Integer" value="1"> + <port dir="out" size="32" source="0$id$w86ab2$Out$exprCount" typeName="int"/> + </operation> + <operation kind="$ge"> <port dir="in" source="0$id$w86ab1$status"/> + <port dir="in" source="0$id$w86ab2$Out$exprCount"/> + <port dir="out" size="1" source="0$id$w86ab2$Out" typeName="bool"/> + </operation> + <operation kind="$literal_Integer" value="1"> + <port dir="out" size="1" source="0$id$w86ab2$true" typeName="bool"/> + </operation> + <operation kind="$and"> + <port dir="in" source="0$id$w86ab2$true"/> + <port dir="in" source="0$id$w86ab2$Out"/> <port dir="out" size="1" source="0$id$w86ab2$fireable" typeName="bool"/> </operation> <module kind="if"> diff --git a/examples/actors/sdftest.xdf b/examples/actors/sdftest.xdf index de0a19c9e39bb3e8e1d41f63d19170c5f8460141..f24f6214a5612d8c97826217fa63cc8a7c0ffdd2 100644 --- a/examples/actors/sdftest.xdf +++ b/examples/actors/sdftest.xdf @@ -103,7 +103,7 @@ </Expr> </Guards> </Action> - <Note kind="filepath" value="/home/csandersn/work/actors/example//art_Source_txt.cal"/> + <Note kind="filepath" value="/work/csandersn/actors/example//art_Source_txt.cal"/> </Actor> <Attribute kind="Value" name="clockDomain"> <Expr kind="Literal" literal-kind="String" value="CLK"/> @@ -147,7 +147,7 @@ </Expr> </Output> </Action> - <Note kind="filepath" value="/home/csandersn/work/actors/example//AddOne.cal"/> + <Note kind="filepath" value="/work/csandersn/actors/example//AddOne.cal"/> </Actor> <Attribute kind="Value" name="clockDomain"> <Expr kind="Literal" literal-kind="String" value="CLK"/> @@ -191,7 +191,7 @@ </Expr> </Output> </Action> - <Note kind="filepath" value="/home/csandersn/work/actors/example//Double.cal"/> + <Note kind="filepath" value="/work/csandersn/actors/example//Double.cal"/> </Actor> <Attribute kind="Value" name="clockDomain"> <Expr kind="Literal" literal-kind="String" value="CLK"/> @@ -235,7 +235,7 @@ </Expr> </Output> </Action> - <Note kind="filepath" value="/home/csandersn/work/actors/example//SubOne.cal"/> + <Note kind="filepath" value="/work/csandersn/actors/example//SubOne.cal"/> </Actor> <Attribute kind="Value" name="clockDomain"> <Expr kind="Literal" literal-kind="String" value="CLK"/> @@ -302,7 +302,7 @@ </Expr> </Output> </Action> - <Note kind="filepath" value="/home/csandersn/work/actors/example//AddFiveOnce.cal"/> + <Note kind="filepath" value="/work/csandersn/actors/example//AddFiveOnce.cal"/> <Schedule initial-state="init" kind="fsm" text-begin-col="3" text-begin-line="7" text-end-col="3" text-end-line="10"> @@ -401,7 +401,7 @@ </Args> </Stmt> </Action> - <Note kind="filepath" value="/home/csandersn/work/actors/example//art_Sink_txt.cal"/> + <Note kind="filepath" value="/work/csandersn/actors/example//art_Sink_txt.cal"/> </Actor> <Attribute kind="Value" name="clockDomain"> <Expr kind="Literal" literal-kind="String" value="CLK"/> diff --git a/examples/actors/xdf/MergeActors.jrag b/examples/actors/xdf/MergeActors.jrag index 6153a7d95e21e833ded20743a21ae4fd2d0a0094..b72d6e4301389f4b1df2cb91e994952feabec1fe 100644 --- a/examples/actors/xdf/MergeActors.jrag +++ b/examples/actors/xdf/MergeActors.jrag @@ -38,7 +38,7 @@ aspect MergeActors { c.remove_me = true; c.is$Final(false); } else if (c.getSource() == i.next) { - c.setSource(i.id()); + c.setSource("\""+i.id()+"\""); } } System.out.println("Merging "+i.name()+":"+i.next.name()); diff --git a/examples/actors/xlim/GeneratedAspects.jrag b/examples/actors/xlim/GeneratedAspects.jrag index b7f5eabf2ab21bebf49f7112c9f7e249939c7bfd..3a65692990a353ff8c32c809b2e89e5d3f680508 100644 --- a/examples/actors/xlim/GeneratedAspects.jrag +++ b/examples/actors/xlim/GeneratedAspects.jrag @@ -72,6 +72,23 @@ aspect PrettyPrinter { } } + public void note.prettyPrint(String ind, PrintStream pStream) { + pStream.print(ind+"<note "); + for (int i=0; i<getNumAttribute(); i++) { + getAttribute(i).prettyPrint(ind,pStream); + } + if (getNumElement() == 0) { + pStream.println("/> "); + } else { + pStream.println("> "); + String newInd = ind+" "; + for (int i=0; i<getNumElement(); i++) { + getElement(i).prettyPrint(newInd,pStream); + } + pStream.println(ind+"</note> "); + } + } + public void sourceName.prettyPrint(String indent, PrintStream pStream) { pStream.print(" sourceName="); getAttrValue().prettyPrint(indent,pStream); @@ -215,7 +232,7 @@ aspect PrettyPrinter { } public void actor_port.prettyPrint(String ind, PrintStream pStream) { - pStream.print(ind+"<actor-port "); + pStream.print(ind+"<actor_port "); for (int i=0; i<getNumAttribute(); i++) { getAttribute(i).prettyPrint(ind,pStream); } diff --git a/examples/actors/xlim/Merge.jrag b/examples/actors/xlim/Merge.jrag index 46dbf2fb1f2d96afad121135966f003296223a7d..234c0aaf5f0fd8a52584549a83ad023753633429 100644 --- a/examples/actors/xlim/Merge.jrag +++ b/examples/actors/xlim/Merge.jrag @@ -17,9 +17,10 @@ aspect Merge { public void design.merge(design dest) { HashSet<module> ops = getActions(new HashSet<module>()); System.out.println("Adding actions to: "+name()); + List<Element> eList = getElements(); for (module o : ops) { System.out.println(" Adding "+o.name()); - addElement(o); + eList.insertChild(o,eList.getNumChild()-2); } } } diff --git a/examples/actors/xlim/xlim.ast b/examples/actors/xlim/xlim.ast index 71561e87ef6c59d748d47866a8a95faf01d35f5c..56c680e89cae77df1806592a3f7833758111b251 100644 --- a/examples/actors/xlim/xlim.ast +++ b/examples/actors/xlim/xlim.ast @@ -24,6 +24,7 @@ XsiNoNamespaceSchemaLocation : Attribute ::=; // Generated types portName : Attribute ::= ; module : ComplexElement ::= ; +note : ComplexElement ::= ; sourceName : Attribute ::= ; PHI : ComplexElement ::= ; kind : Attribute ::= ; diff --git a/examples/actors/xlim/xlim.jjt b/examples/actors/xlim/xlim.jjt index ca10b33d09d6759b017a3a51d29ba209526a77d1..e4db8493c9b0e868558cac5a778dd451f554f0a4 100644 --- a/examples/actors/xlim/xlim.jjt +++ b/examples/actors/xlim/xlim.jjt @@ -48,6 +48,7 @@ PARSER_END(XmlParser) | <XmlnsXsi : "xmlns:xsi"> | <portName : "portName" > | <module : "module" > + | <note : "note" > | <sourceName : "sourceName" > | <PHI : "PHI" > | <kind : "kind" > @@ -277,14 +278,15 @@ void XmlnsXsi() #XmlnsXsi : {} void Element() : {} { ( <LT> ( - port() + design() + | module() + | PHI() + | port() | operation() | actor_port() - | PHI() - | design() - | module() - | initValue() | stateVar() + | note() + | initValue() )) | SimpleElement() } @@ -352,6 +354,11 @@ void module() #module : {} <module> AttributeList() ( <GT> ElementList() "</" <module> ">" | ElementList() "/>" ) } +void note() #note : {} +{ + <note> AttributeList() + ( <GT> ElementList() "</" <note> ">" | ElementList() "/>" ) +} void sourceName() #sourceName : {} { <sourceName> "=" AttrValue() diff --git a/examples/xlim.xsd b/examples/xlim.xsd index 5d126c8e2ee8a354a87d2ccb4f91141035712d62..eb9bffa4618751d9c0b64181b9c549fbad66961d 100644 --- a/examples/xlim.xsd +++ b/examples/xlim.xsd @@ -83,4 +83,11 @@ </xs:sequence> </xs:complexType> </xs:element> + <xs:element name="note"> + <xs:complexType> + <xs:attribute name="kind"/> + <xs:attribute name="name"/> + <xs:attribute name="value"/> + </xs:complexType> + </xs:element> </xs:schema>