Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » TMF (Xtext) » formatting - help with issue
formatting - help with issue [message #648394] Wed, 12 January 2011 17:20 Go to next message
Henrik Lindberg is currently offline Henrik LindbergFriend
Messages: 2509
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------080907070502070305070900
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hi,
I have a problem with formatting, that looks like formatter bug(s) to
me. The problem is that no formatting is applied.

This is the basic root rule of my grammar:

Manifest returns pp::Manifest
: {pp::Manifest}
statements += Expression*
;

(Expression is the top of a set of expression rules like
AdditiveExpression, MultiplicativeExpression etc. down to
PrimaryExpressions).

I have configured the formatter with a single rule and looked at the
debug graviz output. I tried two alternatives:

1. Using the statements assignment
c.setLinewrap().after(ga.getManifestAccess().getStatementsAs signment_2());
super.saveDebugGraphvizDiagram("debugDiagram.dot");
(this .dot output is attached)

2. Using the statements assignment's rule call
c.setLinewrap().after(ga.getManifestAccess().getStatementsEx pressionParserRuleCall_2_0());
super.saveDebugGraphvizDiagram("debugDiagram.dot");

In case 2, the diagram shows no signs of any formatting rules what so
ever (there is no {\n} marker by neither the "statements+=*"-node nor
the "=>Expression"-node's repeat arrow.

In case 1, the diagram shows a {\n} marker on the "=>Expression"-node's
repeat arrow.

The wanted linewrap is not inserted in either case.

I have debugged what is happening given the input:
$a = 1 $b = 2

Looking at the calls to collectLocators in the
FormattingConfigBasedStream I think that the linewrap rule should be
found when asking the matcher for matchNext when the element for the
variable "$b" is processed. Is this correct?

Greatful for any hints how to pinpoint what is wrong. I currently don't
understand what the cause is:
- is the rule recorded ok
- does it get the right tokens in the stream
- is the matching logic wrong
- etc.

I had a suspicion that the problem has to do with my handling of
whitespace (the grammar does not have hidden WS, instead it has a data
type rule called OWS (optional whitespace) that eats ws and comments.

If I try the input:
1 2
It parses ok (two literal integers).

The primary expression rule is something like
Literal : value = LITERAL_CHAR_SEQUENCE OWS

Both LITERAL_CHAR_SEQUENCE and OWS are data type rules.

And I can observe that writeSemantic is called with
LITERAL_CHAR_SEQUENCE RuleCall twice. Depending on if I use my
workaround to handle OWS as whitespace or not, there are calls to
writeSemantic with OWS (or not) after both literals. In both cases,
there is no matching taking place.

Hope someone has some hints...

Regards
- henrik

--------------080907070502070305070900
Content-Type: text/plain; x-mac-type="0"; x-mac-creator="0";
name="debugDiagram.dot"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="debugDiagram.dot"

## This is a Graphviz .dot file (http://www.graphviz.org/)
## You can use the command 'dot -Tpdf this.dot > out.pdf' to render it.
digraph G {
group1479771328 [style=dotted,label="PuppetManifest:\n( )",shape=record];
action2109787451 [style=dotted,label="{PuppetManifest}"];
assignment2095193340 [style=dotted,label="leadingSpaceAndComments= ?"];
rulecall1867493731 [peripheries=2,label="=\>OWSOBJ"];
assignment510767908 [style=dotted,label="statements+= *"];
rulecall454939202 [peripheries=2,label="=\>Expression"];
group1853722107 [style=dotted,label="Expression:\n( )",shape=record];
rulecall1975235828 [peripheries=2,label="=\>ResourceExpression"];
group1238974439 [style=dotted,label="( )*"];
action1441954961 [style=dotted,label="{RelationshipExpression.leftExpr=}"];
assignment584073132 [style=dotted,label="opName= "];
rulecall369379087 [label="=\>EdgeOperator"];
rulecall1586602385 [label="=\>OWS"];
assignment1133890507 [style=dotted,label="rightExpr= "];
rulecall527867671 [peripheries=2,label="=\>ResourceExpression"];
group1917919986 [style=dotted,label="ResourceExpression:\n( )",shape=record];
rulecall751663232 [peripheries=2,label="=\>AssignmentExpression"];
group1005524084 [style=dotted,label="( )?"];
action1294461545 [style=dotted,label="{ResourceExpression.resourceExpr=}"];
rulecall2005842705 [label="=\>LBRACE"];
rulecall1344760078 [label="=\>OWS"];
group1585343723 [style=dotted,label="( )?"];
assignment1042344132 [style=dotted,label="resourceData+= "];
rulecall1653717945 [label="=\>ResourceBody"];
group30703749 [style=dotted,label="( )*"];
rulecall641834163 [label="=\>SEMI"];
rulecall1963798822 [label="=\>OWS"];
assignment494377029 [style=dotted,label="resourceData+= "];
rulecall380496160 [label="=\>ResourceBody"];
group1929002779 [style=dotted,label="( )?"];
rulecall189087894 [label="=\>SEMI"];
rulecall19625264 [label="=\>OWS"];
rulecall35604423 [label="=\>RBRACE"];
rulecall1470520561 [peripheries=2,label="=\>OWS"];
alternatives174728500 [style=dotted,label="ResourceBody:\n\|",shape=record];
group1051754051 [style=dotted,label="( )"];
assignment892436700 [style=dotted,label="name= "];
rulecall1157826252 [label="=\>QUOTED_STRING"];
rulecall1807672858 [label="=\>OWS"];
rulecall1506718462 [label="=\>COLON"];
rulecall1197549556 [peripheries=2,label="=\>OWS"];
assignment1319177384 [style=dotted,label="attributes= ?"];
rulecall793121260 [peripheries=2,label="=\>AttributeOperations"];
assignment1463136589 [style=dotted,label="attributes= "];
rulecall101409526 [peripheries=2,label="=\>AttributeOperations"];
group152040097 [style=dotted,label="AttributeDefinition:\n( )",shape=record];
assignment1979853996 [style=dotted,label="key= "];
rulecall147000507 [label="=\>NAME"];
rulecall1632576632 [label="=\>OWS"];
rulecall202515486 [label="=\>FARROW"];
rulecall20192428 [label="=\>OWS"];
assignment176532032 [style=dotted,label="value= "];
rulecall1298945317 [peripheries=2,label="=\>Expression"];
group1031327099 [style=dotted,label="AttributeAddition:\n( )",shape=record];
assignment1174037956 [style=dotted,label="key= "];
rulecall976177856 [label="=\>NAME"];
rulecall1979698647 [label="=\>OWS"];
rulecall1831017158 [label="=\>PARROW"];
rulecall464712996 [label="=\>OWS"];
assignment33299633 [style=dotted,label="value= "];
rulecall1321183611 [peripheries=2,label="=\>Expression"];
alternatives1993646359 [style=dotted,label="AttributeOperation:\n\|",shape=record];
rulecall27011572 [peripheries=2,label="=\>AttributeDefinition"];
rulecall864441087 [peripheries=2,label="=\>AttributeAddition"];
group1338008566 [style=dotted,label="AttributeOperations:\n( )",shape=record];
assignment1608701025 [style=dotted,label="attributes+= "];
rulecall619011445 [peripheries=2,label="=\>AttributeOperation"];
group934477254 [style=dotted,label="( )*"];
rulecall1211297467 [label="=\>COMMA"];
rulecall1272598600 [label="=\>OWS"];
assignment1775029727 [style=dotted,label="attributes+= "];
rulecall81797565 [peripheries=2,label="=\>AttributeOperation"];
rulecall131554309 [peripheries=2,label="=\>endComma?"];
group1713403830 [style=dotted,label="AssignmentExpression:\n( )",shape=record];
rulecall1569948187 [peripheries=2,label="=\>AppendExpression"];
group980528520 [style=dotted,label="( )?"];
action2100812209 [style=dotted,label="{AssignmentExpression.leftExpr=}"];
rulecall1572156336 [label="=\>EQ"];
rulecall592746464 [label="=\>OWS"];
assignment113182015 [style=dotted,label="rightExpr= "];
rulecall1727098510 [peripheries=2,label="=\>AppendExpression"];
group382140875 [style=dotted,label="AppendExpression:\n( )",shape=record];
rulecall1665581595 [peripheries=2,label="=\>OrExpression"];
group238610808 [style=dotted,label="( )?"];
action979881107 [style=dotted,label="{AppendExpression.leftExpr=}"];
rulecall1957160153 [label="=\>PLUSEQ"];
rulecall983670372 [label="=\>OWS"];
assignment1218827598 [style=dotted,label="rightExpr= "];
rulecall2136414500 [peripheries=2,label="=\>OrExpression"];
group1955684718 [style=dotted,label="OrExpression:\n( )",shape=record];
rulecall1955838091 [peripheries=2,label="=\>AndExpression"];
group1319931098 [style=dotted,label="( )*"];
action575890576 [style=dotted,label="{OrExpression.leftExpr=}"];
rulecall284113803 [label="=\>KW_OR"];
rulecall1244539740 [label="=\>OWS"];
assignment488688400 [style=dotted,label="rightExpr= "];
rulecall1408472672 [peripheries=2,label="=\>AndExpression"];
group791923660 [style=dotted,label="AndExpression:\n( )",shape=record];
rulecall1904793161 [peripheries=2,label="=\>RelationalExpression"];
group278011847 [style=dotted,label="( )*"];
action1768180304 [style=dotted,label="{AndExpression.leftExpr=}"];
rulecall927662142 [label="=\>KW_AND"];
rulecall486343374 [label="=\>OWS"];
assignment650326336 [style=dotted,label="rightExpr= "];
rulecall1490449569 [peripheries=2,label="=\>RelationalExpression"];
group487957423 [style=dotted,label="RelationalExpression:\n( )",shape=record];
rulecall2007844115 [peripheries=2,label="=\>EqualityExpression"];
group1717328515 [style=dotted,label="( )*"];
action960135925 [style=dotted,label="{RelationalExpression.leftExpr=}"];
assignment812367917 [style=dotted,label="opName= "];
rulecall1914037040 [label="=\>RelationalOperator"];
rulecall2062982867 [label="=\>OWS"];
assignment1429564854 [style=dotted,label="rightExpr= "];
rulecall649458542 [peripheries=2,label="=\>EqualityExpression"];
group1736647575 [style=dotted,label="EqualityExpression:\n( )",shape=record];
rulecall1385546648 [peripheries=2,label="=\>ShiftExpression"];
group1890272056 [style=dotted,label="( )*"];
action2076855121 [style=dotted,label="{EqualityExpression.leftExpr=}"];
assignment504820309 [style=dotted,label="opName= "];
rulecall1954527713 [label="=\>EqualityOperator"];
rulecall1837407879 [label="=\>OWS"];
assignment499378493 [style=dotted,label="rightExpr= "];
rulecall688239375 [peripheries=2,label="=\>ShiftExpression"];
group1937821340 [style=dotted,label="ShiftExpression:\n( )",shape=record];
rulecall226270978 [peripheries=2,label="=\>AdditiveExpression"];
group1490747277 [style=dotted,label="( )*"];
action297774990 [style=dotted,label="{ShiftExpression.leftExpr=}"];
assignment1067359420 [style=dotted,label="opName= "];
rulecall1178868549 [label="=\>ShiftOperator"];
rulecall559575821 [label="=\>OWS"];
assignment959933334 [style=dotted,label="rightExpr= "];
rulecall1702388274 [peripheries=2,label="=\>AdditiveExpression"];
group892252883 [style=dotted,label="AdditiveExpression:\n( )",shape=record];
rulecall215897580 [peripheries=2,label="=\>MultiplicativeExpression"];
group594458922 [style=dotted,label="( )*"];
action977176210 [style=dotted,label="{AdditiveExpression.leftExpr=}"];
assignment1593112861 [style=dotted,label="opName= "];
rulecall621744031 [label="=\>AdditiveOperator"];
rulecall2143986362 [label="=\>OWS"];
assignment1350673121 [style=dotted,label="rightExpr= "];
rulecall1860995857 [peripheries=2,label="=\>MultiplicativeExpression"];
group1115092137 [style=dotted,label="MultiplicativeExpression:\n( )",shape=record];
rulecall263759190 [peripheries=2,label="=\>MatchingExpression"];
group283697583 [style=dotted,label="( )*"];
action691581141 [style=dotted,label="{MultiplicativeExpression.leftExpr=}"];
assignment1222739223 [style=dotted,label="opName= "];
rulecall1307102818 [label="=\>MultiplicativeOperator"];
rulecall1866836963 [label="=\>OWS"];
assignment1192754471 [style=dotted,label="rightExpr= "];
rulecall2012032999 [peripheries=2,label="=\>MatchingExpression"];
group1805533691 [style=dotted,label="MatchingExpression:\n( )",shape=record];
rulecall1660812527 [peripheries=2,label="=\>InExpression"];
group1023134153 [style=dotted,label="( )*"];
action914147942 [style=dotted,label="{MatchingExpression.leftExpr=}"];
assignment986450556 [style=dotted,label="opName= "];
rulecall700739852 [label="=\>MatchingOperator"];
rulecall534372416 [label="=\>OWS"];
assignment420583958 [style=dotted,label="rightExpr= "];
rulecall1385899829 [peripheries=2,label="=\>LiteralRegex"];
group1961108531 [style=dotted,label="InExpression:\n( )",shape=record];
rulecall772066361 [peripheries=2,label="=\>UnaryOrHigherExpression"];
group47108597 [style=dotted,label="( )*"];
action1480207683 [style=dotted,label="{InExpression.leftExpr=}"];
assignment1399961333 [style=dotted,label="opName= "];
rulecall1319287199 [label="=\>KW_IN"];
rulecall491298318 [label="=\>OWS"];
assignment176207911 [style=dotted,label="rightExpr= "];
rulecall146410964 [peripheries=2,label="=\>UnaryOrHigherExpression"];
alternatives866586549 [style=dotted,label="UnaryOrHigherExpression:\n\|",shape=record];
rulecall486035089 [peripheries=2,label="=\>UnaryMinusExpression"];
rulecall1911431282 [peripheries=2,label="=\>NotExpression"];
rulecall1217681101 [peripheries=2,label="=\>InfixExpression"];
group1860296133 [style=dotted,label="UnaryMinusExpression:\n( )",shape=record];
rulecall782690658 [label="=\>MINUS"];
rulecall1312054407 [label="=\>OWS"];
assignment1336331053 [style=dotted,label="expr= "];
rulecall1332027445 [peripheries=2,label="=\>InfixExpression"];
group1344551131 [style=dotted,label="NotExpression:\n( )",shape=record];
rulecall2047924983 [label="=\>EXCLAMATION"];
rulecall2015731787 [label="=\>OWS"];
assignment1849612684 [style=dotted,label="expr= "];
rulecall1614589663 [peripheries=2,label="=\>InfixExpression"];
group1754778812 [style=dotted,label="InfixExpression:\n( )",shape=record];
rulecall1174569033 [peripheries=2,label="=\>CollectExpression"];
group1125034725 [style=dotted,label="( )*"];
action2012594887 [style=dotted,label="{AtExpression.leftExpr=}"];
rulecall667341912 [label="=\>LBRACK"];
rulecall1855910350 [label="=\>OWS"];
group85279775 [style=dotted,label="( )?"];
assignment925585876 [style=dotted,label="parameters+= "];
rulecall2097762711 [label="=\>Expression"];
group116290690 [style=dotted,label="( )*"];
rulecall287508060 [label="=\>COMMA"];
rulecall309758670 [label="=\>OWS"];
assignment613606362 [style=dotted,label="parameters+= "];
rulecall665653240 [label="=\>Expression"];
rulecall1858850978 [label="=\>RBRACK"];
rulecall1391687457 [peripheries=2,label="=\>OWS"];
group805102549 [style=dotted,label="CollectExpression:\n( )",shape=record];
rulecall64081296 [peripheries=2,label="=\>SelectorExpression"];
group732874858 [style=dotted,label="( )?"];
action1609022861 [style=dotted,label="{CollectExpression.classReference=}"];
assignment1733141803 [style=dotted,label="query= "];
rulecall446095113 [peripheries=2,label="=\>CollectQuery"];
group918813800 [style=dotted,label="( )?"];
rulecall2096114670 [label="=\>LBRACE"];
rulecall2077513302 [label="=\>OWS"];
assignment829450141 [style=dotted,label="attributes= ?"];
rulecall1252167110 [label="=\>AttributeOperations"];
rulecall1980360817 [label="=\>RBRACE"];
rulecall75206466 [peripheries=2,label="=\>OWS"];
alternatives655152514 [style=dotted,label="CollectQuery:\n\|",shape=record];
rulecall999644629 [peripheries=2,label="=\>VirtualCollectQuery"];
rulecall1262709122 [peripheries=2,label="=\>ExportedCollectQuery"];
group1274689626 [style=dotted,label="VirtualCollectQuery:\n( )",shape=record];
action411681710 [style=dotted,label="{VirtualCollectQuery}"];
rulecall2089672983 [label="=\>LCOLLECT"];
rulecall708278331 [label="=\>OWS"];
assignment532053796 [style=dotted,label="expr= ?"];
rulecall106243264 [label="=\>Expression"];
rulecall1071627391 [label="=\>RCOLLECT"];
rulecall2043696795 [peripheries=2,label="=\>OWS"];
group1186262243 [style=dotted,label="ExportedCollectQuery:\n( )",shape=record];
action271339353 [style=dotted,label="{ExportedCollectQuery}"];
rulecall1292723290 [label="=\>LLCOLLECT"];
rulecall1558583447 [label="=\>OWS"];
assignment106467623 [style=dotted,label="expr= ?"];
rulecall547461810 [label="=\>Expression"];
rulecall1370696922 [label="=\>RRCOLLECT"];
rulecall1246086685 [peripheries=2,label="=\>OWS"];
group1846690322 [style=dotted,label="SelectorExpression:\n( )",shape=record];
rulecall1890575410 [peripheries=2,label="=\>FunctionCall"];
group219829048 [style=dotted,label="( )?"];
action994936896 [style=dotted,label="{SelectorExpression.leftExpr=}"];
rulecall1596735530 [label="=\>QUESTION"];
rulecall1378399798 [label="=\>OWS"];
alternatives1859304797 [style=dotted,label="\|"];
assignment1301175682 [style=dotted,label="parameters+= "];
rulecall1033709973 [peripheries=2,label="=\>SelectorEntry"];
group420811981 [style=dotted,label="( )"];
rulecall923315096 [label="=\>LBRACE"];
rulecall1289817408 [label="=\>OWS"];
assignment1261243438 [style=dotted,label="parameters+= "];
rulecall2054866576 [label="=\>SelectorEntry"];
group310531778 [style=dotted,label="( )*"];
rulecall722330636 [label="=\>COMMA"];
rulecall2031784244 [label="=\>OWS"];
assignment1060317961 [style=dotted,label="parameters+= "];
rulecall944667721 [label="=\>SelectorEntry"];
rulecall485942761 [label="=\>endComma?"];
rulecall359674586 [label="=\>RBRACE"];
rulecall683784576 [peripheries=2,label="=\>OWS"];
group439985250 [style=dotted,label="SelectorEntry:\n( )",shape=record];
rulecall1045900129 [peripheries=2,label="=\>Expression"];
group1182373735 [style=dotted,label="( )?"];
action1489178454 [style=dotted,label="{SelectorEntry.leftExpr=}"];
rulecall1847854240 [label="=\>FARROW"];
rulecall2125192413 [label="=\>OWS"];
assignment1160868387 [style=dotted,label="rightExpr= "];
rulecall826047314 [peripheries=2,label="=\>Expression"];
group718389251 [style=dotted,label="FunctionCall:\n( )",shape=record];
rulecall815078123 [peripheries=2,label="=\>PrimaryExpression"];
group2135368604 [style=dotted,label="( )?"];
action393418764 [style=dotted,label="{FunctionCall.leftExpr=}"];
rulecall87017435 [label="=\>LPAREN"];
rulecall65666438 [label="=\>OWS"];
group1996712555 [style=dotted,label="( )?"];
assignment20960216 [style=dotted,label="parameters+= "];
rulecall91032204 [label="=\>Expression"];
group1640586218 [style=dotted,label="( )?"];
rulecall1790022093 [label="=\>COMMA"];
rulecall1805219895 [label="=\>OWS"];
assignment681810449 [style=dotted,label="parameters+= "];
rulecall215475951 [label="=\>Expression"];
rulecall802906228 [label="=\>endComma?"];
rulecall969895964 [label="=\>RPAREN"];
rulecall846879615 [peripheries=2,label="=\>OWS"];
alternatives2042912190 [style=dotted,label="PrimaryExpression:\n\|",shape=record];
rulecall1256629094 [peripheries=2,label="=\>IfExpression"];
rulecall1810998260 [peripheries=2,label="=\>CaseExpression"];
rulecall1162026889 [peripheries=2,label="=\>ImportExpression"];
rulecall969637605 [peripheries=2,label="=\>Definition"];
rulecall1593313799 [peripheries=2,label="=\>HostClassDefinition"];
rulecall1851425350 [peripheries=2,label="=\>NodeDefinition"];
rulecall2015296067 [peripheries=2,label="=\>VirtualNameOrReference"];
rulecall968917585 [peripheries=2,label="=\>LiteralExpression"];
rulecall229355894 [peripheries=2,label="=\>VariableExpression"];
rulecall51364093 [peripheries=2,label="=\>ParenthisedExpression"];
group1581218723 [style=dotted,label="NodeDefinition:\n( )",shape=record];
rulecall432945836 [label="=\>KW_NODE"];
rulecall365516215 [label="=\>OWS"];
assignment1427795085 [style=dotted,label="hostNames+= "];
rulecall969722017 [label="=\>HostReference"];
group1732492303 [style=dotted,label="( )*"];
rulecall267366848 [label="=\>COMMA"];
rulecall230117504 [label="=\>OWS"];
assignment2114325128 [style=dotted,label="hostNames+= "];
rulecall1050519387 [label="=\>HostReference"];
group1098824812 [style=dotted,label="( )?"];
rulecall1736734731 [label="=\>KW_INHERITS"];
rulecall1616275322 [label="=\>OWS"];
assignment1218685951 [style=dotted,label="parentName= "];
rulecall1903237018 [label="=\>HostReference"];
rulecall702893893 [label="=\>LBRACE"];
rulecall935639461 [label="=\>OWS"];
assignment1417157693 [style=dotted,label="statements+= *"];
rulecall428217374 [label="=\>Expression"];
rulecall831703721 [label="=\>RBRACE"];
rulecall473380524 [peripheries=2,label="=\>OWS"];
alternatives864542636 [style=dotted,label="HostReference:\n\|",shape=record];
rulecall493727650 [peripheries=2,label="=\>LiteralString"];
rulecall203801542 [peripheries=2,label="=\>LiteralRegex"];
rulecall56099429 [peripheries=2,label="=\>LiteralDefault"];
rulecall117782170 [peripheries=2,label="=\>LiteralNameOrReference"];
group1386831779 [style=dotted,label="HostClassDefinition:\n( )",shape=record];
rulecall1841688762 [label="=\>KW_CLASS"];
rulecall1845861952 [label="=\>OWS"];
assignment853062702 [style=dotted,label="className= "];
rulecall824005142 [label="=\>UNION_NAME_OR_REFERENCE"];
rulecall2079865738 [label="=\>OWS"];
assignment1712136347 [style=dotted,label="arguments= ?"];
rulecall1742197876 [label="=\>DefinitionArgumentList"];
group180175087 [style=dotted,label="( )?"];
rulecall250744939 [label="=\>KW_INHERITS"];
rulecall958020134 [label="=\>OWS"];
assignment1759490579 [style=dotted,label="parent= "];
rulecall908342063 [label="=\>ParentName"];
rulecall907274359 [label="=\>LBRACE"];
rulecall57054525 [label="=\>OWS"];
assignment1137695113 [style=dotted,label="statements+= *"];
rulecall47371303 [label="=\>Expression"];
rulecall1600540131 [label="=\>RBRACE"];
rulecall897819395 [peripheries=2,label="=\>OWS"];
alternatives43806318 [style=dotted,label="ParentName:\n\|",shape=record];
rulecall1813379352 [peripheries=2,label="=\>LiteralDefault"];
rulecall378850840 [peripheries=2,label="=\>LiteralNameOrReference"];
group1004049038 [style=dotted,label="Definition:\n( )",shape=record];
rulecall125683540 [label="=\>KW_DEFINE"];
rulecall1430467943 [label="=\>OWS"];
assignment795289836 [style=dotted,label="className= "];
rulecall498054724 [label="=\>UNION_NAME_OR_REFERENCE"];
rulecall2061973909 [label="=\>OWS"];
assignment1651876924 [style=dotted,label="arguments= ?"];
rulecall426873252 [label="=\>DefinitionArgumentList"];
rulecall1863365384 [label="=\>LBRACE"];
rulecall827984687 [label="=\>OWS"];
assignment244601849 [style=dotted,label="statements+= *"];
rulecall739575785 [label="=\>Expression"];
rulecall414869659 [label="=\>RBRACE"];
rulecall1982440651 [peripheries=2,label="=\>OWS"];
group1426258013 [style=dotted,label="DefinitionArgumentList:\n( )",shape=record];
action905956677 [style=dotted,label="{DefinitionArgumentList}"];
rulecall754813109 [label="=\>LPAREN"];
rulecall671238152 [label="=\>OWS"];
group768022973 [style=dotted,label="( )?"];
assignment1785388741 [style=dotted,label="arguments+= "];
rulecall239570456 [label="=\>DefinitionArgument"];
group18669450 [style=dotted,label="( )*"];
rulecall244833688 [label="=\>COMMA"];
rulecall341126564 [label="=\>OWS"];
assignment1680307305 [style=dotted,label="arguments+= "];
rulecall1514917085 [label="=\>DefinitionArgument"];
rulecall2076299514 [label="=\>RPAREN"];
rulecall645328763 [peripheries=2,label="=\>OWS"];
group1904151695 [style=dotted,label="DefinitionArgument:\n( )",shape=record];
assignment1276230271 [style=dotted,label="argName= "];
rulecall535498461 [label="=\>UNION_VARIABLE_OR_NAME"];
rulecall1248102391 [peripheries=2,label="=\>OWS"];
group236621641 [style=dotted,label="( )?"];
rulecall1907689690 [label="=\>EQ"];
rulecall609770120 [label="=\>OWS"];
assignment614443356 [style=dotted,label="value= "];
rulecall1848109516 [peripheries=2,label="=\>Expression"];
group756946527 [style=dotted,label="CaseExpression:\n( )",shape=record];
rulecall307154461 [label="=\>KW_CASE"];
rulecall2120648851 [label="=\>OWS"];
assignment2106633145 [style=dotted,label="switchExpr= "];
rulecall620379926 [label="=\>Expression"];
rulecall692310097 [label="=\>LBRACE"];
rulecall589400833 [label="=\>OWS"];
assignment1865220267 [style=dotted,label="cases+= *"];
rulecall1938232210 [label="=\>Case"];
rulecall689312127 [label="=\>RBRACE"];
rulecall2115235807 [peripheries=2,label="=\>OWS"];
group1742126571 [style=dotted,label="Case:\n( )",shape=record];
assignment1129235599 [style=dotted,label="values+= "];
rulecall1749723854 [label="=\>Expression"];
group1323915811 [style=dotted,label="( )*"];
rulecall974968910 [label="=\>COMMA"];
rulecall1996630899 [label="=\>OWS"];
assignment796051471 [style=dotted,label="values+= "];
rulecall413952287 [label="=\>Expression"];
rulecall1002243760 [label="=\>COLON"];
rulecall1596554976 [label="=\>OWS"];
rulecall491312367 [label="=\>LBRACE"];
rulecall412329454 [label="=\>OWS"];
assignment91404509 [style=dotted,label="statements+= *"];
rulecall784775158 [label="=\>Expression"];
rulecall2019004279 [label="=\>RBRACE"];
rulecall1015810906 [peripheries=2,label="=\>OWS"];
group2131560636 [style=dotted,label="IfExpression:\n( )",shape=record];
rulecall817409998 [label="=\>KW_IF"];
rulecall238903492 [label="=\>OWS"];
assignment1604053801 [style=dotted,label="condExpr= "];
rulecall1970012616 [label="=\>Expression"];
rulecall99167666 [label="=\>LBRACE"];
rulecall263652390 [label="=\>OWS"];
assignment946954969 [style=dotted,label="thenStatements+= *"];
rulecall470856066 [label="=\>Expression"];
rulecall200662067 [label="=\>RBRACE"];
rulecall978034279 [peripheries=2,label="=\>OWS"];
group982293015 [style=dotted,label="( )?"];
rulecall1691908616 [label="=\>KW_ELS"];
alternatives1077139185 [style=dotted,label="\|"];
group191138085 [style=dotted,label="( )"];
rulecall1969742330 [label="=\>KW_IF"];
rulecall1934550901 [label="=\>OWS"];
assignment1094577527 [style=dotted,label="elseStatement= "];
rulecall1219576087 [peripheries=2,label="=\>ElseIfExpression"];
group1998921805 [style=dotted,label="( )"];
rulecall644602967 [label="=\>KW_E"];
rulecall1470883156 [label="=\>OWS"];
assignment1448942275 [style=dotted,label="elseStatement= "];
rulecall2055742592 [peripheries=2,label="=\>ElseExpression"];
group1347161 [style=dotted,label="ElseExpression:\n( )",shape=record];
action1166898457 [style=dotted,label="{ElseExpression}"];
rulecall1241702395 [label="=\>LBRACE"];
rulecall46071219 [label="=\>OWS"];
assignment1224864813 [style=dotted,label="statements+= *"];
rulecall524671949 [label="=\>Expression"];
rulecall593592261 [label="=\>RBRACE"];
rulecall1443590312 [peripheries=2,label="=\>OWS"];
group1831367241 [style=dotted,label="ElseIfExpression:\n( )",shape=record];
action2053590683 [style=dotted,label="{ElseIfExpression}"];
assignment341434597 [style=dotted,label="condExpr= "];
rulecall414966995 [label="=\>Expression"];
rulecall152129978 [label="=\>LBRACE"];
rulecall1343000316 [label="=\>OWS"];
assignment1753181042 [style=dotted,label="thenStatements+= *"];
rulecall90652407 [label="=\>Expression"];
rulecall1029098726 [label="=\>RBRACE"];
rulecall228994944 [peripheries=2,label="=\>OWS"];
group427328384 [style=dotted,label="( )?"];
rulecall922834320 [label="=\>KW_ELS"];
alternatives949517606 [style=dotted,label="\|"];
group591423185 [style=dotted,label="( )"];
rulecall1495151979 [label="=\>KW_IF"];
rulecall1767028043 [label="=\>OWS"];
assignment888964338 [style=dotted,label="elseStatement= "];
rulecall779896587 [peripheries=2,label="=\>ElseIfExpression"];
group1313157506 [style=dotted,label="( )"];
rulecall548763123 [label="=\>KW_E"];
rulecall1629240068 [label="=\>OWS"];
assignment73839979 [style=dotted,label="elseStatement= "];
rulecall1930462734 [peripheries=2,label="=\>ElseExpression"];
alternatives1940848509 [style=dotted,label="LiteralExpression:\n\|",shape=record];
rulecall1711776480 [peripheries=2,label="=\>LiteralBoolean"];
rulecall2136364148 [peripheries=2,label="=\>LiteralUndef"];
rulecall2093141243 [peripheries=2,label="=\>LiteralDefault"];
rulecall1495249594 [peripheries=2,label="=\>LiteralList"];
rulecall806289164 [peripheries=2,label="=\>LiteralHash"];
rulecall680166778 [peripheries=2,label="=\>LiteralRegex"];
rulecall507584865 [peripheries=2,label="=\>LiteralString"];
rulecall1173780171 [peripheries=2,label="=\>LiteralNameOrReference"];
group161044821 [style=dotted,label="LiteralNameOrReference:\n( )",shape=record];
assignment850911327 [style=dotted,label="value= "];
rulecall1173067516 [label="=\>UNION_NAME_OR_REFERENCE"];
rulecall1965663577 [peripheries=2,label="=\>OWS"];
group597599308 [style=dotted,label="ParenthisedExpression:\n( )",shape=record];
rulecall70552537 [label="=\>LPAREN"];
rulecall19313191 [label="=\>OWS"];
assignment326770440 [style=dotted,label="expr= "];
rulecall915099701 [label="=\>Expression"];
rulecall1950278540 [label="=\>RPAREN"];
rulecall1288517619 [peripheries=2,label="=\>OWS"];
group846069616 [style=dotted,label="VirtualNameOrReference:\n( )",shape=record];
rulecall1402809325 [label="=\>AT"];
assignment890526185 [style=dotted,label="exported= ?"];
rulecall1260055352 [label="=\>ATBoolean"];
rulecall1414057997 [label="=\>OWS"];
assignment2018717877 [style=dotted,label="value= "];
rulecall497219786 [label="=\>UNION_NAME_OR_REFERENCE"];
rulecall914072825 [peripheries=2,label="=\>OWS"];
group1941822286 [style=dotted,label="ImportExpression:\n( )",shape=record];
rulecall898177343 [label="=\>KW_IMPORT"];
rulecall1871442784 [label="=\>OWS"];
assignment1293376726 [style=dotted,label="value= "];
rulecall953158948 [label="=\>NAME_OR_STRING"];
rulecall1661916063 [peripheries=2,label="=\>OWS"];
group939304230 [style=dotted,label="LiteralList:\n( )",shape=record];
action733904513 [style=dotted,label="{LiteralList}"];
rulecall1734565270 [label="=\>LBRACK"];
rulecall1650957959 [label="=\>OWS"];
group14214026 [style=dotted,label="( )?"];
assignment524450165 [style=dotted,label="elements+= "];
rulecall1161035867 [label="=\>Expression"];
group1932871300 [style=dotted,label="( )*"];
rulecall782810931 [label="=\>COMMA"];
rulecall854768773 [label="=\>OWS"];
assignment1580653028 [style=dotted,label="elements+= "];
rulecall1662728206 [label="=\>Expression"];
rulecall1218495795 [label="=\>endComma?"];
rulecall1493400027 [label="=\>RBRACK"];
rulecall268259831 [peripheries=2,label="=\>OWS"];
group747984865 [style=dotted,label="LiteralHash:\n( )",shape=record];
action12356517 [style=dotted,label="{LiteralHash}"];
rulecall1517551107 [label="=\>LBRACE"];
rulecall1074804564 [label="=\>OWS"];
group1755352231 [style=dotted,label="( )?"];
assignment74603931 [style=dotted,label="elements+= "];
rulecall1885302116 [label="=\>HashEntry"];
group61497480 [style=dotted,label="( )*"];
rulecall648512153 [label="=\>COMMA"];
rulecall407125559 [label="=\>OWS"];
assignment676370771 [style=dotted,label="elements+= "];
rulecall1132604626 [label="=\>HashEntry"];
rulecall1064246946 [label="=\>endComma?"];
rulecall151452127 [label="=\>RBRACE"];
rulecall390902174 [peripheries=2,label="=\>OWS"];
group687776794 [style=dotted,label="HashEntry:\n( )",shape=record];
assignment1707588604 [style=dotted,label="key= "];
rulecall470208920 [label="=\>LiteralNameOrString"];
rulecall1447969041 [label="=\>FARROW"];
rulecall730984283 [label="=\>OWS"];
assignment2046383541 [style=dotted,label="value= "];
rulecall1617566882 [peripheries=2,label="=\>Expression"];
alternatives740362245 [style=dotted,label="LiteralNameOrString:\n\|",shape=record];
rulecall748000997 [peripheries=2,label="=\>LiteralString"];
rulecall283487041 [peripheries=2,label="=\>LiteralName"];
group1104231462 [style=dotted,label="LiteralBoolean:\n( )",shape=record];
assignment264504460 [style=dotted,label="value= "];
rulecall235309930 [label="=\>BooleanValue"];
rulecall1770176195 [peripheries=2,label="=\>OWS"];
group1827038380 [style=dotted,label="LiteralString:\n( )",shape=record];
assignment165384207 [style=dotted,label="value= "];
rulecall768527831 [label="=\>QUOTED_STRING"];
rulecall112863827 [peripheries=2,label="=\>OWS"];
group1680602559 [style=dotted,label="LiteralDefault:\n( )",shape=record];
action34800122 [style=dotted,label="{LiteralDefault}"];
rulecall770098470 [label="=\>KW_DEFAULT"];
rulecall674280088 [peripheries=2,label="=\>OWS"];
group1336599383 [style=dotted,label="LiteralUndef:\n( )",shape=record];
action1546882461 [style=dotted,label="{LiteralUndef}"];
rulecall1016491445 [label="=\>KW_UNDEF"];
rulecall354233797 [peripheries=2,label="=\>OWS"];
group1210790641 [style=dotted,label="LiteralRegex:\n( )",shape=record];
assignment203264315 [style=dotted,label="value= "];
rulecall1764343475 [label="=\>REGULAR_EXPRESION"];
rulecall782756695 [peripheries=2,label="=\>OWS"];
group1451098401 [style=dotted,label="LiteralName:\n( )",shape=record];
assignment1786530275 [style=dotted,label="value= "];
rulecall97979571 [label="=\>NAME"];
rulecall306951343 [peripheries=2,label="=\>OWS"];
group847841485 [style=dotted,label="LiteralClassName:\n( )",shape=record];
assignment1117840550 [style=dotted,label="value= "];
rulecall1359179894 [label="=\>CLASS_NAME"];
rulecall675501707 [peripheries=2,label="=\>OWS"];
group952925319 [style=dotted,label="LiteralClassRef:\n( )",shape=record];
assignment2030280754 [style=dotted,label="value= "];
rulecall1560965295 [label="=\>CLASS_REF"];
rulecall1558631507 [peripheries=2,label="=\>OWS"];
group938552655 [style=dotted,label="VariableExpression:\n( )",shape=record];
assignment987085370 [style=dotted,label="varName= "];
rulecall632640515 [label="=\>VARIABLE"];
rulecall914212043 [peripheries=2,label="=\>OWS"];
group2051045641 [style=dotted,label="OWSOBJ:\n( )",shape=record];
action516586643 [style=dotted,label="{OWS}"];
assignment2142807727 [style=dotted,label="values+= *"];
rulecall868707499 [peripheries=2,label="=\>WHITE"];
group1479771328->action2109787451 [style=dotted];
rulecall1867493731->rulecall868707499 [arrowhead=onormalonormal];
rulecall1867493731->rulecall454939202 [arrowtail=odot,arrowhead=onormal];
assignment2095193340->rulecall1867493731 [style=dotted];
group1479771328->assignment2095193340 [style=dotted];
rulecall454939202->rulecall1975235828 [arrowhead=onormalonormal];
rulecall454939202->rulecall454939202 [label="{\\n}",arrowtail=odot,arrowhead=onormal];
assignment510767908->rulecall454939202 [style=dotted];
group1479771328->assignment510767908 [style=dotted];
rulecall1975235828->rulecall751663232 [arrowhead=onormalonormal];
rulecall1975235828->rulecall369379087 [arrowtail=odot,arrowhead=onormal];
group1853722107->rulecall1975235828 [style=dotted];
group1238974439->action1441954961 [style=dotted];
rulecall369379087->rulecall1586602385 [arrowhead=onormal];
assignment584073132->rulecall369379087 [style=dotted];
group1238974439->assignment584073132 [style=dotted];
rulecall1586602385->rulecall527867671 [arrowhead=onormal];
group1238974439->rulecall1586602385 [style=dotted];
rulecall527867671->rulecall751663232 [arrowhead=onormalonormal];
rulecall527867671->rulecall369379087 [arrowtail=odot,arrowhead=onormal];
assignment1133890507->rulecall527867671 [style=dotted];
group1238974439->assignment1133890507 [style=dotted];
group1853722107->group1238974439 [style=dotted];
rulecall751663232->rulecall1569948187 [arrowhead=onormalonormal];
rulecall751663232->rulecall2005842705 [arrowtail=odot,arrowhead=onormal];
group1917919986->rulecall751663232 [style=dotted];
group1005524084->action1294461545 [style=dotted];
rulecall2005842705->rulecall1344760078 [arrowhead=onormal];
group1005524084->rulecall2005842705 [style=dotted];
rulecall1344760078->rulecall1653717945 [arrowhead=onormal];
rulecall1344760078->rulecall35604423 [arrowhead=onormal];
group1005524084->rulecall1344760078 [style=dotted];
rulecall1653717945->rulecall1157826252 [arrowhead=onormalonormal];
rulecall1653717945->rulecall101409526 [arrowhead=onormalonormal];
rulecall1653717945->rulecall641834163 [arrowtail=odot,arrowhead=onormal];
rulecall1653717945->rulecall189087894 [arrowtail=odot,arrowhead=onormal];
rulecall1653717945->rulecall35604423 [arrowtail=odot,arrowhead=onormal];
assignment1042344132->rulecall1653717945 [style=dotted];
group1585343723->assignment1042344132 [style=dotted];
rulecall641834163->rulecall1963798822 [arrowhead=onormal];
group30703749->rulecall641834163 [style=dotted];
rulecall1963798822->rulecall380496160 [arrowhead=onormal];
group30703749->rulecall1963798822 [style=dotted];
rulecall380496160->rulecall1157826252 [arrowhead=onormalonormal];
rulecall380496160->rulecall101409526 [arrowhead=onormalonormal];
rulecall380496160->rulecall641834163 [arrowtail=odot,arrowhead=onormal];
rulecall380496160->rulecall189087894 [arrowtail=odot,arrowhead=onormal];
rulecall380496160->rulecall35604423 [arrowtail=odot,arrowhead=onormal];
assignment494377029->rulecall380496160 [style=dotted];
group30703749->assignment494377029 [style=dotted];
group1585343723->group30703749 [style=dotted];
rulecall189087894->rulecall19625264 [arrowhead=onormal];
group1929002779->rulecall189087894 [style=dotted];
rulecall19625264->rulecall35604423 [arrowhead=onormal];
group1929002779->rulecall19625264 [style=dotted];
group1585343723->group1929002779 [style=dotted];
group1005524084->group1585343723 [style=dotted];
rulecall35604423->rulecall1470520561 [arrowhead=onormal];
group1005524084->rulecall35604423 [style=dotted];
group1005524084->rulecall1470520561 [style=dotted];
group1917919986->group1005524084 [style=dotted];
rulecall1157826252->rulecall1807672858 [arrowhead=onormal];
assignment892436700->rulecall1157826252 [style=dotted];
group1051754051->assignment892436700 [style=dotted];
rulecall1807672858->rulecall1506718462 [arrowhead=onormal];
group1051754051->rulecall1807672858 [style=dotted];
rulecall1506718462->rulecall1197549556 [arrowhead=onormal];
group1051754051->rulecall1506718462 [style=dotted];
rulecall1197549556->rulecall793121260 [arrowhead=onormal];
group1051754051->rulecall1197549556 [style=dotted];
rulecall793121260->rulecall619011445 [arrowhead=onormalonormal];
assignment1319177384->rulecall793121260 [style=dotted];
group1051754051->assignment1319177384 [style=dotted];
alternatives174728500->group1051754051 [style=dotted];
rulecall101409526->rulecall619011445 [arrowhead=onormalonormal];
assignment1463136589->rulecall101409526 [style=dotted];
alternatives174728500->assignment1463136589 [style=dotted];
rulecall147000507->rulecall1632576632 [arrowhead=onormal];
assignment1979853996->rulecall147000507 [style=dotted];
group152040097->assignment1979853996 [style=dotted];
rulecall1632576632->rulecall202515486 [arrowhead=onormal];
group152040097->rulecall1632576632 [style=dotted];
rulecall202515486->rulecall20192428 [arrowhead=onormal];
group152040097->rulecall202515486 [style=dotted];
rulecall20192428->rulecall1298945317 [arrowhead=onormal];
group152040097->rulecall20192428 [style=dotted];
rulecall1298945317->rulecall1975235828 [arrowhead=onormalonormal];
assignment176532032->rulecall1298945317 [style=dotted];
group152040097->assignment176532032 [style=dotted];
rulecall976177856->rulecall1979698647 [arrowhead=onormal];
assignment1174037956->rulecall976177856 [style=dotted];
group1031327099->assignment1174037956 [style=dotted];
rulecall1979698647->rulecall1831017158 [arrowhead=onormal];
group1031327099->rulecall1979698647 [style=dotted];
rulecall1831017158->rulecall464712996 [arrowhead=onormal];
group1031327099->rulecall1831017158 [style=dotted];
rulecall464712996->rulecall1321183611 [arrowhead=onormal];
group1031327099->rulecall464712996 [style=dotted];
rulecall1321183611->rulecall1975235828 [arrowhead=onormalonormal];
assignment33299633->rulecall1321183611 [style=dotted];
group1031327099->assignment33299633 [style=dotted];
rulecall27011572->rulecall147000507 [arrowhead=onormalonormal];
alternatives1993646359->rulecall27011572 [style=dotted];
rulecall864441087->rulecall976177856 [arrowhead=onormalonormal];
alternatives1993646359->rulecall864441087 [style=dotted];
rulecall619011445->rulecall27011572 [arrowhead=onormalonormal];
rulecall619011445->rulecall864441087 [arrowhead=onormalonormal];
rulecall619011445->rulecall1211297467 [arrowtail=odot,arrowhead=onormal];
rulecall619011445->rulecall131554309 [arrowtail=odot,arrowhead=onormal];
assignment1608701025->rulecall619011445 [style=dotted];
group1338008566->assignment1608701025 [style=dotted];
rulecall1211297467->rulecall1272598600 [arrowhead=onormal];
group934477254->rulecall1211297467 [style=dotted];
rulecall1272598600->rulecall81797565 [arrowhead=onormal];
group934477254->rulecall1272598600 [style=dotted];
rulecall81797565->rulecall27011572 [arrowhead=onormalonormal];
rulecall81797565->rulecall864441087 [arrowhead=onormalonormal];
rulecall81797565->rulecall1211297467 [arrowtail=odot,arrowhead=onormal];
rulecall81797565->rulecall131554309 [arrowtail=odot,arrowhead=onormal];
assignment1775029727->rulecall81797565 [style=dotted];
group934477254->assignment1775029727 [style=dotted];
group1338008566->group934477254 [style=dotted];
group1338008566->rulecall131554309 [style=dotted];
rulecall1569948187->rulecall1665581595 [arrowhead=onormalonormal];
rulecall1569948187->rulecall1572156336 [arrowtail=odot,arrowhead=onormal];
group1713403830->rulecall1569948187 [style=dotted];
group980528520->action2100812209 [style=dotted];
rulecall1572156336->rulecall592746464 [arrowhead=onormal];
group980528520->rulecall1572156336 [style=dotted];
rulecall592746464->rulecall1727098510 [arrowhead=onormal];
group980528520->rulecall592746464 [style=dotted];
rulecall1727098510->rulecall1665581595 [arrowhead=onormalonormal];
assignment113182015->rulecall1727098510 [style=dotted];
group980528520->assignment113182015 [style=dotted];
group1713403830->group980528520 [style=dotted];
rulecall1665581595->rulecall1955838091 [arrowhead=onormalonormal];
rulecall1665581595->rulecall1957160153 [arrowtail=odot,arrowhead=onormal];
group382140875->rulecall1665581595 [style=dotted];
group238610808->action979881107 [style=dotted];
rulecall1957160153->rulecall983670372 [arrowhead=onormal];
group238610808->rulecall1957160153 [style=dotted];
rulecall983670372->rulecall2136414500 [arrowhead=onormal];
group238610808->rulecall983670372 [style=dotted];
rulecall2136414500->rulecall1955838091 [arrowhead=onormalonormal];
assignment1218827598->rulecall2136414500 [style=dotted];
group238610808->assignment1218827598 [style=dotted];
group382140875->group238610808 [style=dotted];
rulecall1955838091->rulecall1904793161 [arrowhead=onormalonormal];
rulecall1955838091->rulecall284113803 [arrowtail=odot,arrowhead=onormal];
group1955684718->rulecall1955838091 [style=dotted];
group1319931098->action575890576 [style=dotted];
rulecall284113803->rulecall1244539740 [arrowhead=onormal];
group1319931098->rulecall284113803 [style=dotted];
rulecall1244539740->rulecall1408472672 [arrowhead=onormal];
group1319931098->rulecall1244539740 [style=dotted];
rulecall1408472672->rulecall1904793161 [arrowhead=onormalonormal];
rulecall1408472672->rulecall284113803 [arrowtail=odot,arrowhead=onormal];
assignment488688400->rulecall1408472672 [style=dotted];
group1319931098->assignment488688400 [style=dotted];
group1955684718->group1319931098 [style=dotted];
rulecall1904793161->rulecall2007844115 [arrowhead=onormalonormal];
rulecall1904793161->rulecall927662142 [arrowtail=odot,arrowhead=onormal];
group791923660->rulecall1904793161 [style=dotted];
group278011847->action1768180304 [style=dotted];
rulecall927662142->rulecall486343374 [arrowhead=onormal];
group278011847->rulecall927662142 [style=dotted];
rulecall486343374->rulecall1490449569 [arrowhead=onormal];
group278011847->rulecall486343374 [style=dotted];
rulecall1490449569->rulecall2007844115 [arrowhead=onormalonormal];
rulecall1490449569->rulecall927662142 [arrowtail=odot,arrowhead=onormal];
assignment650326336->rulecall1490449569 [style=dotted];
group278011847->assignment650326336 [style=dotted];
group791923660->group278011847 [style=dotted];
rulecall2007844115->rulecall1385546648 [arrowhead=onormalonormal];
rulecall2007844115->rulecall1914037040 [arrowtail=odot,arrowhead=onormal];
group487957423->rulecall2007844115 [style=dotted];
group1717328515->action960135925 [style=dotted];
rulecall1914037040->rulecall2062982867 [arrowhead=onormal];
assignment812367917->rulecall1914037040 [style=dotted];
group1717328515->assignment812367917 [style=dotted];
rulecall2062982867->rulecall649458542 [arrowhead=onormal];
group1717328515->rulecall2062982867 [style=dotted];
rulecall649458542->rulecall1385546648 [arrowhead=onormalonormal];
rulecall649458542->rulecall1914037040 [arrowtail=odot,arrowhead=onormal];
assignment1429564854->rulecall649458542 [style=dotted];
group1717328515->assignment1429564854 [style=dotted];
group487957423->group1717328515 [style=dotted];
rulecall1385546648->rulecall226270978 [arrowhead=onormalonormal];
rulecall1385546648->rulecall1954527713 [arrowtail=odot,arrowhead=onormal];
group1736647575->rulecall1385546648 [style=dotted];
group1890272056->action2076855121 [style=dotted];
rulecall1954527713->rulecall1837407879 [arrowhead=onormal];
assignment504820309->rulecall1954527713 [style=dotted];
group1890272056->assignment504820309 [style=dotted];
rulecall1837407879->rulecall688239375 [arrowhead=onormal];
group1890272056->rulecall1837407879 [style=dotted];
rulecall688239375->rulecall226270978 [arrowhead=onormalonormal];
rulecall688239375->rulecall1954527713 [arrowtail=odot,arrowhead=onormal];
assignment499378493->rulecall688239375 [style=dotted];
group1890272056->assignment499378493 [style=dotted];
group1736647575->group1890272056 [style=dotted];
rulecall226270978->rulecall215897580 [arrowhead=onormalonormal];
rulecall226270978->rulecall1178868549 [arrowtail=odot,arrowhead=onormal];
group1937821340->rulecall226270978 [style=dotted];
group1490747277->action297774990 [style=dotted];
rulecall1178868549->rulecall559575821 [arrowhead=onormal];
assignment1067359420->rulecall1178868549 [style=dotted];
group1490747277->assignment1067359420 [style=dotted];
rulecall559575821->rulecall1702388274 [arrowhead=onormal];
group1490747277->rulecall559575821 [style=dotted];
rulecall1702388274->rulecall215897580 [arrowhead=onormalonormal];
rulecall1702388274->rulecall1178868549 [arrowtail=odot,arrowhead=onormal];
assignment959933334->rulecall1702388274 [style=dotted];
group1490747277->assignment959933334 [style=dotted];
group1937821340->group1490747277 [style=dotted];
rulecall215897580->rulecall263759190 [arrowhead=onormalonormal];
rulecall215897580->rulecall621744031 [arrowtail=odot,arrowhead=onormal];
group892252883->rulecall215897580 [style=dotted];
group594458922->action977176210 [style=dotted];
rulecall621744031->rulecall2143986362 [arrowhead=onormal];
assignment1593112861->rulecall621744031 [style=dotted];
group594458922->assignment1593112861 [style=dotted];
rulecall2143986362->rulecall1860995857 [arrowhead=onormal];
group594458922->rulecall2143986362 [style=dotted];
rulecall1860995857->rulecall263759190 [arrowhead=onormalonormal];
rulecall1860995857->rulecall621744031 [arrowtail=odot,arrowhead=onormal];
assignment1350673121->rulecall1860995857 [style=dotted];
group594458922->assignment1350673121 [style=dotted];
group892252883->group594458922 [style=dotted];
rulecall263759190->rulecall1660812527 [arrowhead=onormalonormal];
rulecall263759190->rulecall1307102818 [arrowtail=odot,arrowhead=onormal];
group1115092137->rulecall263759190 [style=dotted];
group283697583->action691581141 [style=dotted];
rulecall1307102818->rulecall1866836963 [arrowhead=onormal];
assignment1222739223->rulecall1307102818 [style=dotted];
group283697583->assignment1222739223 [style=dotted];
rulecall1866836963->rulecall2012032999 [arrowhead=onormal];
group283697583->rulecall1866836963 [style=dotted];
rulecall2012032999->rulecall1660812527 [arrowhead=onormalonormal];
rulecall2012032999->rulecall1307102818 [arrowtail=odot,arrowhead=onormal];
assignment1192754471->rulecall2012032999 [style=dotted];
group283697583->assignment1192754471 [style=dotted];
group1115092137->group283697583 [style=dotted];
rulecall1660812527->rulecall772066361 [arrowhead=onormalonormal];
rulecall1660812527->rulecall700739852 [arrowtail=odot,arrowhead=onormal];
group1805533691->rulecall1660812527 [style=dotted];
group1023134153->action914147942 [style=dotted];
rulecall700739852->rulecall534372416 [arrowhead=onormal];
assignment986450556->rulecall700739852 [style=dotted];
group1023134153->assignment986450556 [style=dotted];
rulecall534372416->rulecall1385899829 [arrowhead=onormal];
group1023134153->rulecall534372416 [style=dotted];
rulecall1385899829->rulecall1764343475 [arrowhead=onormalonormal];
rulecall1385899829->rulecall700739852 [arrowtail=odot,arrowhead=onormal];
assignment420583958->rulecall1385899829 [style=dotted];
group1023134153->assignment420583958 [style=dotted];
group1805533691->group1023134153 [style=dotted];
rulecall772066361->rulecall486035089 [arrowhead=onormalonormal];
rulecall772066361->rulecall1911431282 [arrowhead=onormalonormal];
rulecall772066361->rulecall1217681101 [arrowhead=onormalonormal];
rulecall772066361->rulecall1319287199 [arrowtail=odot,arrowhead=onormal];
group1961108531->rulecall772066361 [style=dotted];
group47108597->action1480207683 [style=dotted];
rulecall1319287199->rulecall491298318 [arrowhead=onormal];
assignment1399961333->rulecall1319287199 [style=dotted];
group47108597->assignment1399961333 [style=dotted];
rulecall491298318->rulecall146410964 [arrowhead=onormal];
group47108597->rulecall491298318 [style=dotted];
rulecall146410964->rulecall486035089 [arrowhead=onormalonormal];
rulecall146410964->rulecall1911431282 [arrowhead=onormalonormal];
rulecall146410964->rulecall1217681101 [arrowhead=onormalonormal];
rulecall146410964->rulecall1319287199 [arrowtail=odot,arrowhead=onormal];
assignment176207911->rulecall146410964 [style=dotted];
group47108597->assignment176207911 [style=dotted];
group1961108531->group47108597 [style=dotted];
rulecall486035089->rulecall782690658 [arrowhead=onormalonormal];
alternatives866586549->rulecall486035089 [style=dotted];
rulecall1911431282->rulecall2047924983 [arrowhead=onormalonormal];
alternatives866586549->rulecall1911431282 [style=dotted];
rulecall1217681101->rulecall1174569033 [arrowhead=onormalonormal];
alternatives866586549->rulecall1217681101 [style=dotted];
rulecall782690658->rulecall1312054407 [arrowhead=onormal];
group1860296133->rulecall782690658 [style=dotted];
rulecall1312054407->rulecall1332027445 [arrowhead=onormal];
group1860296133->rulecall1312054407 [style=dotted];
rulecall1332027445->rulecall1174569033 [arrowhead=onormalonormal];
assignment1336331053->rulecall1332027445 [style=dotted];
group1860296133->assignment1336331053 [style=dotted];
rulecall2047924983->rulecall2015731787 [arrowhead=onormal];
group1344551131->rulecall2047924983 [style=dotted];
rulecall2015731787->rulecall1614589663 [arrowhead=onormal];
group1344551131->rulecall2015731787 [style=dotted];
rulecall1614589663->rulecall1174569033 [arrowhead=onormalonormal];
assignment1849612684->rulecall1614589663 [style=dotted];
group1344551131->assignment1849612684 [style=dotted];
rulecall1174569033->rulecall64081296 [arrowhead=onormalonormal];
rulecall1174569033->rulecall667341912 [arrowtail=odot,arrowhead=onormal];
group1754778812->rulecall1174569033 [style=dotted];
group1125034725->action2012594887 [style=dotted];
rulecall667341912->rulecall1855910350 [arrowhead=onormal];
group1125034725->rulecall667341912 [style=dotted];
rulecall1855910350->rulecall2097762711 [arrowhead=onormal];
rulecall1855910350->rulecall1858850978 [arrowhead=onormal];
group1125034725->rulecall1855910350 [style=dotted];
rulecall2097762711->rulecall1975235828 [arrowhead=onormalonormal];
rulecall2097762711->rulecall287508060 [arrowtail=odot,arrowhead=onormal];
rulecall2097762711->rulecall1858850978 [arrowtail=odot,arrowhead=onormal];
assignment925585876->rulecall2097762711 [style=dotted];
group85279775->assignment925585876 [style=dotted];
rulecall287508
Re: formatting - help with issue [message #648455 is a reply to message #648394] Wed, 12 January 2011 23:07 Go to previous messageGo to next message
Sebastian Zarnekow is currently offline Sebastian ZarnekowFriend
Messages: 3118
Registered: July 2009
Senior Member
Hi Henrik,

could you please file a ticket with a small language + formatter
attached to reproduce the problem. That would be helpful.

Thanks,
Sebastian
--
Need professional support for Eclipse Modeling?
Go visit: http://xtext.itemis.com

Am 12.01.11 18:20, schrieb Henrik Lindberg:
> Hi,
> I have a problem with formatting, that looks like formatter bug(s) to
> me. The problem is that no formatting is applied.
>
> This is the basic root rule of my grammar:
>
> Manifest returns pp::Manifest
> : {pp::Manifest}
> statements += Expression*
> ;
>
> (Expression is the top of a set of expression rules like
> AdditiveExpression, MultiplicativeExpression etc. down to
> PrimaryExpressions).
>
> I have configured the formatter with a single rule and looked at the
> debug graviz output. I tried two alternatives:
>
> 1. Using the statements assignment
> c.setLinewrap().after(ga.getManifestAccess().getStatementsAs signment_2());
> super.saveDebugGraphvizDiagram("debugDiagram.dot");
> (this .dot output is attached)
>
> 2. Using the statements assignment's rule call
> c.setLinewrap().after(ga.getManifestAccess().getStatementsEx pressionParserRuleCall_2_0());
>
> super.saveDebugGraphvizDiagram("debugDiagram.dot");
>
> In case 2, the diagram shows no signs of any formatting rules what so
> ever (there is no {\n} marker by neither the "statements+=*"-node nor
> the "=>Expression"-node's repeat arrow.
>
> In case 1, the diagram shows a {\n} marker on the "=>Expression"-node's
> repeat arrow.
>
> The wanted linewrap is not inserted in either case.
>
> I have debugged what is happening given the input:
> $a = 1 $b = 2
>
> Looking at the calls to collectLocators in the
> FormattingConfigBasedStream I think that the linewrap rule should be
> found when asking the matcher for matchNext when the element for the
> variable "$b" is processed. Is this correct?
>
> Greatful for any hints how to pinpoint what is wrong. I currently don't
> understand what the cause is:
> - is the rule recorded ok
> - does it get the right tokens in the stream
> - is the matching logic wrong
> - etc.
>
> I had a suspicion that the problem has to do with my handling of
> whitespace (the grammar does not have hidden WS, instead it has a data
> type rule called OWS (optional whitespace) that eats ws and comments.
>
> If I try the input:
> 1 2
> It parses ok (two literal integers).
>
> The primary expression rule is something like
> Literal : value = LITERAL_CHAR_SEQUENCE OWS
>
> Both LITERAL_CHAR_SEQUENCE and OWS are data type rules.
>
> And I can observe that writeSemantic is called with
> LITERAL_CHAR_SEQUENCE RuleCall twice. Depending on if I use my
> workaround to handle OWS as whitespace or not, there are calls to
> writeSemantic with OWS (or not) after both literals. In both cases,
> there is no matching taking place.
>
> Hope someone has some hints...
>
> Regards
> - henrik
Re: formatting - help with issue [message #648462 is a reply to message #648455] Thu, 13 January 2011 01:20 Go to previous message
Henrik Lindberg is currently offline Henrik LindbergFriend
Messages: 2509
Registered: July 2009
Senior Member
Managed to cook it down to a small grammar + classes for special non
terminal whitespace handling.

Filed: https://bugs.eclipse.org/bugs/show_bug.cgi?id=334187

- henrik

On 1/13/11 12:07 AM, Sebastian Zarnekow wrote:
> Hi Henrik,
>
> could you please file a ticket with a small language + formatter
> attached to reproduce the problem. That would be helpful.
>
> Thanks,
> Sebastian
Previous Topic:Need help with alternative choices in a rule
Next Topic:Protected Text
Goto Forum:
  


Current Time: Fri Apr 26 21:43:46 GMT 2024

Powered by FUDForum. Page generated in 0.03124 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top