ValueExpression to support string antiquotation

This commit is contained in:
Fedor Isakov 2014-09-22 12:13:41 +02:00
parent 111784b6b5
commit 1c4ceaf479
6 changed files with 158 additions and 2 deletions

View File

@ -871,6 +871,27 @@
</node>
</node>
</node>
<node role="reductionMappingRule" roleId="tpf8.1167328349397" type="tpf8.Reduction_MappingRule" typeId="tpf8.1167327847730" id="6726466946035453056" nodeInfo="ng">
<link role="applicableConcept" roleId="tpf8.1167169349424" targetNodeId="5j4j.6726466946035358271" resolveInfo="ValueExpression" />
<node role="ruleConsequence" roleId="tpf8.1169672767469" type="tpf8.InlineTemplate_RuleConsequence" typeId="tpf8.1177093525992" id="6726466946035481613" nodeInfo="ng">
<node role="templateNode" roleId="tpf8.1177093586806" type="tpee.StringLiteral" typeId="tpee.1070475926800" id="6726466946035481835" nodeInfo="nn">
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.CopySrcNodeMacro" typeId="tpf8.1114706874351" id="6726466946035482178" nodeInfo="nn">
<node role="sourceNodeQuery" roleId="tpf8.1168024447342" type="tpf8.SourceSubstituteMacro_SourceNodeQuery" typeId="tpf8.1168024337012" id="6726466946035482179" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="6726466946035482180" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="6726466946035482186" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="6726466946035482181" nodeInfo="nn">
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="6726466946035482184" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="5j4j.6726466946035362021" />
</node>
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="6726466946035482185" nodeInfo="nn" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</root>
<root type="tpee.ClassConcept" typeId="tpee.1068390468198" id="3562712610788642008" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="Forest" />

View File

@ -1824,5 +1824,39 @@
<node role="cellLayout" roleId="tpc2.1106270802874" type="tpc2.CellLayout_Indent" typeId="tpc2.1237303669825" id="4310122986197994228" nodeInfo="nn" />
</node>
</root>
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="6726466946035362517" nodeInfo="ng">
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="5j4j.6726466946035358271" resolveInfo="ValueExpression" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="6726466946035363333" nodeInfo="nn">
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="6726466946035363334" nodeInfo="nn">
<property name="text" nameId="tpc2.1073389577007" value="`" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.8171260302110651860" resolveInfo="AnyBracket" />
<node role="styleItem" roleId="tpc2.1219418656006" type="tpc2.PunctuationRightStyleClassItem" typeId="tpc2.1233759184865" id="6726466946035363335" nodeInfo="nn">
<property name="flag" nameId="tpc2.1186414551515" value="true" />
</node>
<node role="styleItem" roleId="tpc2.1219418656006" type="tpc2.ApplyStyleClass" typeId="tpc2.1950447826681509042" id="6726466946035363336" nodeInfo="ng">
<node role="target" roleId="tpc2.1950447826683828796" type="tpc2.StyleReference" typeId="tpc2.9122903797312246523" id="6726466946035363337" nodeInfo="ng">
<link role="style" roleId="tpc2.9122903797312247166" targetNodeId="1503029990832784" resolveInfo="NodeVariableExpression" />
</node>
</node>
</node>
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_RefNode" typeId="tpc2.1073389882823" id="6726466946035363338" nodeInfo="ng">
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="1503029990832784" resolveInfo="NodeVariableExpression" />
<link role="relationDeclaration" roleId="tpc2.1140103550593" targetNodeId="5j4j.6726466946035362021" />
</node>
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="6726466946035363339" nodeInfo="nn">
<property name="text" nameId="tpc2.1073389577007" value="`" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.8171260302110651860" resolveInfo="AnyBracket" />
<node role="styleItem" roleId="tpc2.1219418656006" type="tpc2.PunctuationLeftStyleClassItem" typeId="tpc2.1233758997495" id="6726466946035363340" nodeInfo="nn">
<property name="flag" nameId="tpc2.1186414551515" value="true" />
</node>
<node role="styleItem" roleId="tpc2.1219418656006" type="tpc2.ApplyStyleClass" typeId="tpc2.1950447826681509042" id="6726466946035363341" nodeInfo="ng">
<node role="target" roleId="tpc2.1950447826683828796" type="tpc2.StyleReference" typeId="tpc2.9122903797312246523" id="6726466946035363342" nodeInfo="ng">
<link role="style" roleId="tpc2.9122903797312247166" targetNodeId="1503029990832784" resolveInfo="NodeVariableExpression" />
</node>
</node>
</node>
<node role="cellLayout" roleId="tpc2.1106270802874" type="tpc2.CellLayout_Indent" typeId="tpc2.1237303669825" id="6726466946035363343" nodeInfo="nn" />
</node>
</root>
</model>

View File

@ -107,6 +107,7 @@
<property name="sourceCardinality" nameId="tpce.1071599893252" value="1" />
<link role="target" roleId="tpce.1071599976176" targetNodeId="tpee.1068431790191" resolveInfo="Expression" />
</node>
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpce.DeprecatedNodeAnnotation" typeId="tpce.1224240836180" id="6726466946035360572" nodeInfo="ig" />
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="7932111957678703067" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="AbstractVariable" />
@ -180,5 +181,15 @@
<link role="target" roleId="tpce.1071599976176" targetNodeId="tpee.1068431790191" resolveInfo="Expression" />
</node>
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="6726466946035358271" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="ValueExpression" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="1503029989441024" resolveInfo="AbstractNode" />
<node role="linkDeclaration" roleId="tpce.1071489727083" type="tpce.LinkDeclaration" typeId="tpce.1071489288298" id="6726466946035362021" nodeInfo="ig">
<property name="metaClass" nameId="tpce.1071599937831" value="aggregation" />
<property name="role" nameId="tpce.1071599776563" value="expression" />
<property name="sourceCardinality" nameId="tpce.1071599893252" value="1" />
<link role="target" roleId="tpce.1071599976176" targetNodeId="tpee.1068431790191" resolveInfo="Expression" />
</node>
</root>
</model>

View File

@ -14,7 +14,7 @@
<dependencies>
<dependency reexport="false">6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)</dependency>
<dependency reexport="true">b984ee52-f34d-4b6d-8812-866c1d3eae31(jetbrains.mps.jchr.runtime)</dependency>
<dependency reexport="false">7526e0cf-1ce7-46f8-a555-9eca1e06c23b(jetbrains.mps.unification.tree)</dependency>
<dependency reexport="true">7526e0cf-1ce7-46f8-a555-9eca1e06c23b(jetbrains.mps.unification.tree)</dependency>
</dependencies>
<usedLanguages>
<usedLanguage>f2801650-65d5-424e-bb1b-463a8781b786(jetbrains.mps.baseLanguage.javadoc)</usedLanguage>

View File

@ -254,6 +254,61 @@
</node>
</node>
<node role="member" roleId="tpee.5375687026011219971" type="tpee.PlaceholderMember" typeId="tpee.1465982738277781862" id="3113146058922247664" nodeInfo="ngu" />
<node role="member" roleId="tpee.5375687026011219971" type="tpee.InstanceMethodDeclaration" typeId="tpee.1068580123165" id="8314879665370347988" nodeInfo="igu">
<property name="name" nameId="tpck.1169194664001" value="solver" />
<node role="parameter" roleId="tpee.1068580123134" type="tpee.ParameterDeclaration" typeId="tpee.1068498886292" id="8314879665370357628" nodeInfo="ir">
<property name="name" nameId="tpck.1169194664001" value="constraint" />
<node role="type" roleId="tpee.5680397130376446158" type="tpee.ClassifierType" typeId="tpee.1107535904670" id="8314879665370357629" nodeInfo="in">
<link role="classifier" roleId="tpee.1107535924139" targetNodeId="3113146058919058666" resolveInfo="BuiltinConstraint" />
<node role="parameter" roleId="tpee.1109201940907" type="tpee.TypeVariableReference" typeId="tpee.1109283449304" id="8314879665370357630" nodeInfo="in">
<link role="typeVariableDeclaration" roleId="tpee.1109283546497" targetNodeId="8314879665370353607" resolveInfo="T" />
</node>
</node>
</node>
<node role="returnType" roleId="tpee.1068580123133" type="tpee.TypeVariableReference" typeId="tpee.1109283449304" id="8314879665370365836" nodeInfo="in">
<link role="typeVariableDeclaration" roleId="tpee.1109283546497" targetNodeId="8314879665370353607" resolveInfo="T" />
</node>
<node role="visibility" roleId="tpee.1178549979242" type="tpee.PublicVisibility" typeId="tpee.1146644602865" id="8314879665370347991" nodeInfo="nn" />
<node role="body" roleId="tpee.1068580123135" type="tpee.StatementList" typeId="tpee.1068580123136" id="8314879665370347992" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.IfStatement" typeId="tpee.1068580123159" id="8314879665370369627" nodeInfo="nn">
<node role="ifTrue" roleId="tpee.1068580123161" type="tpee.StatementList" typeId="tpee.1068580123136" id="8314879665370369630" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ReturnStatement" typeId="tpee.1068581242878" id="8314879665370370308" nodeInfo="nn">
<node role="expression" roleId="tpee.1068581517676" type="tpee.NullLiteral" typeId="tpee.1070534058343" id="8314879665370372170" nodeInfo="nn" />
</node>
</node>
<node role="condition" roleId="tpee.1068580123160" type="tpee.NotExpression" typeId="tpee.1081516740877" id="8314879665371249299" nodeInfo="nn">
<node role="expression" roleId="tpee.1081516765348" type="tpee.DotExpression" typeId="tpee.1197027756228" id="8314879665371249300" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.VariableReference" typeId="tpee.1068498886296" id="8314879665371249301" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="3113146058921098945" resolveInfo="solvers" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tpee.InstanceMethodCallOperation" typeId="tpee.1202948039474" id="8314879665371249302" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="k7g3.~Map%dcontainsKey(java%dlang%dObject)%cboolean" resolveInfo="containsKey" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.DotExpression" typeId="tpee.1197027756228" id="8314879665371249303" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.VariableReference" typeId="tpee.1068498886296" id="8314879665371249304" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="8314879665370357628" resolveInfo="constraint" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tpee.InstanceMethodCallOperation" typeId="tpee.1202948039474" id="8314879665371249305" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="3113146058919064037" resolveInfo="symbol" />
</node>
</node>
</node>
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="8314879665370367653" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.LocalMethodCall" typeId="tpee.7812454656619025412" id="8314879665370367652" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="3113146058921072912" resolveInfo="getSolverFor" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.VariableReference" typeId="tpee.1068498886296" id="8314879665370367959" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="8314879665370357628" resolveInfo="constraint" />
</node>
</node>
</node>
</node>
<node role="typeVariableDeclaration" roleId="tpee.1109279881614" type="tpee.TypeVariableDeclaration" typeId="tpee.1109279763828" id="8314879665370353607" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="T" />
</node>
</node>
<node role="member" roleId="tpee.5375687026011219971" type="tpee.PlaceholderMember" typeId="tpee.1465982738277781862" id="8314879665370345986" nodeInfo="ngu" />
<node role="member" roleId="tpee.5375687026011219971" type="tpee.InstanceMethodDeclaration" typeId="tpee.1068580123165" id="3113146058920770253" nodeInfo="igu">
<property name="name" nameId="tpck.1169194664001" value="ask" />
<node role="parameter" roleId="tpee.1068580123134" type="tpee.ParameterDeclaration" typeId="tpee.1068498886292" id="3113146058920771109" nodeInfo="ir">

View File

@ -3131,7 +3131,7 @@
</node>
</node>
</node>
<node role="member" roleId="tpee.5375687026011219971" type="tpee.PlaceholderMember" typeId="tpee.1465982738277781862" id="8314879665368204156" nodeInfo="ngu" />
<node role="member" roleId="tpee.5375687026011219971" type="tpee.PlaceholderMember" typeId="tpee.1465982738277781862" id="8314879665372282254" nodeInfo="ngu" />
<node role="member" roleId="tpee.5375687026011219971" type="tpee.InstanceMethodDeclaration" typeId="tpee.1068580123165" id="8314879665368665176" nodeInfo="igu">
<property name="isAbstract" nameId="tpee.1178608670077" value="false" />
<property name="name" nameId="tpck.1169194664001" value="reactivateAndClearObservers" />
@ -3796,6 +3796,41 @@
</node>
</node>
<node role="member" roleId="tpee.5375687026011219971" type="tpee.PlaceholderMember" typeId="tpee.1465982738277781862" id="2079564643614424636" nodeInfo="ngu" />
<node role="member" roleId="tpee.5375687026011219971" type="tpee.InstanceMethodDeclaration" typeId="tpee.1068580123165" id="8314879665372242250" nodeInfo="igu">
<property name="isAbstract" nameId="tpee.1178608670077" value="false" />
<property name="name" nameId="tpck.1169194664001" value="toString" />
<property name="isFinal" nameId="tpee.1181808852946" value="false" />
<property name="isDeprecated" nameId="tpee.1224848525476" value="false" />
<node role="visibility" roleId="tpee.1178549979242" type="tpee.PublicVisibility" typeId="tpee.1146644602865" id="8314879665372242251" nodeInfo="nn" />
<node role="returnType" roleId="tpee.1068580123133" type="tpee.ClassifierType" typeId="tpee.1107535904670" id="8314879665372242253" nodeInfo="in">
<link role="classifier" roleId="tpee.1107535924139" targetNodeId="e2lb.~String" resolveInfo="String" />
</node>
<node role="body" roleId="tpee.1068580123135" type="tpee.StatementList" typeId="tpee.1068580123136" id="8314879665372242258" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="8314879665372253304" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.PlusExpression" typeId="tpee.1068581242875" id="8314879665372260067" nodeInfo="nn">
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.StringLiteral" typeId="tpee.1070475926800" id="8314879665372260080" nodeInfo="nn">
<property name="value" nameId="tpee.1070475926801" value="%" />
</node>
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.PlusExpression" typeId="tpee.1068581242875" id="8314879665372254259" nodeInfo="nn">
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.StringLiteral" typeId="tpee.1070475926800" id="8314879665372253303" nodeInfo="nn">
<property name="value" nameId="tpee.1070475926801" value="%" />
</node>
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.StaticMethodCall" typeId="tpee.1081236700937" id="8314879665372256053" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="e2lb.~String%dvalueOf(java%dlang%dObject)%cjava%dlang%dString" resolveInfo="valueOf" />
<link role="classConcept" roleId="tpee.1144433194310" targetNodeId="e2lb.~String" resolveInfo="String" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.VariableReference" typeId="tpee.1068498886296" id="8314879665372257842" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="2079564643614424637" resolveInfo="treeLogical" />
</node>
</node>
</node>
</node>
</node>
</node>
<node role="annotation" roleId="tpee.1188208488637" type="tpee.AnnotationInstance" typeId="tpee.1188207840427" id="8314879665372242259" nodeInfo="nn">
<link role="annotation" roleId="tpee.1188208074048" targetNodeId="e2lb.~Override" resolveInfo="Override" />
</node>
</node>
<node role="member" roleId="tpee.5375687026011219971" type="tpee.PlaceholderMember" typeId="tpee.1465982738277781862" id="8314879665372237796" nodeInfo="ngu" />
<node role="member" roleId="tpee.5375687026011219971" type="tpee.FieldDeclaration" typeId="tpee.1068390468200" id="2079564643614424637" nodeInfo="igu">
<property name="name" nameId="tpck.1169194664001" value="treeLogical" />
<node role="visibility" roleId="tpee.1178549979242" type="tpee.PrivateVisibility" typeId="tpee.1146644623116" id="2079564643614424638" nodeInfo="nn" />