<?xml version="1.0"?>
<rss version="2.0"><channel><title>External Parsers Latest Topics</title><link>https://legacy-forum.plasticscm.com/forum/28-external-parsers/</link><description>External Parsers Latest Topics</description><language>en</language><item><title>End of the availability of standalone Semantic Merge</title><link>https://legacy-forum.plasticscm.com/topic/23360-end-of-the-availability-of-standalone-semantic-merge/</link><description><![CDATA[<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<span style="background-color:#ffffff; color:#1d1c1d; font-size:15px; text-align:left">Dear Semantic Merge users,</span>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<span style="background-color:#ffffff; color:#1d1c1d; font-size:15px; text-align:left">Thank you for your support of Semantic Merge.</span><span style="background-color:#ffffff; color:#1d1c1d; font-size:15px; text-align:left">By now you have all been notified by email but we wanted to share this in the forums also.</span>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<br style="background-color:#ffffff; color:#1d1c1d; font-size:15px; text-align:left"><span style="background-color:#ffffff; color:#1d1c1d; font-size:15px; text-align:left">As of 5 April 2022, we have ended the availability of standalone Semantic Merge product.</span>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<br style="background-color:#ffffff; color:#1d1c1d; font-size:15px; text-align:left"><span style="background-color:#ffffff; color:#1d1c1d; font-size:15px; text-align:left">You will be able to continue to use your current license through the end of the license term.</span><br style="background-color:#ffffff; color:#1d1c1d; font-size:15px; text-align:left"><span style="background-color:#ffffff; color:#1d1c1d; font-size:15px; text-align:left">Semantic Merge technology continues under active development as a part of Unity Plastic SCM.</span>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	 
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<span style="background-color:#ffffff; color:#1d1c1d; font-size:15px; text-align:left">Best regards,</span>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<span style="background-color:#ffffff; color:#1d1c1d; font-size:15px; text-align:left">Carlos.</span>
</p>
]]></description><guid isPermaLink="false">23360</guid><pubDate>Tue, 05 Apr 2022 13:01:03 +0000</pubDate></item><item><title>VS Code as External 2 Way Merge Tool</title><link>https://legacy-forum.plasticscm.com/topic/21186-vs-code-as-external-2-way-merge-tool/</link><description><![CDATA[
<p>
	I'm trying to confirm that the following is the correct config for utilizing VS Code as the external 2 way merge tool
</p>

<p>
	[mergetool "semanticmerge"]<br />
	    cmd = \"C:\\Users\\KyleZeronik\\AppData\\Local\\semanticmerge\\semanticmergetool.exe\" -s \"$REMOTE\" -d \"$LOCAL\" -b \"$BASE\" -r \"$MERGED\" -a --nolangwarn <strong>-<span style="color:#2ecc71;">e2mt = \"code '"#"sourcefile' '"#"destinationfile' --L1 "#"sourcesymbolic --L2 "#"destinationsymbolic -o '"#"output' \</span></strong>"<br />
	    trustExitCode = true
</p>

<p>
	also I have working both "semanticmerge" and "vscode" as difftool(s) (I switch between the 2)<br /><br />
	[difftool]<br />
	    prompt = false<br />
	[difftool "semanticmerge"]<br />
	    cmd = \"C:\\Users\\KyleZeronik\\AppData\\Local\\semanticmerge\\semanticmergetool.exe\" -s \"$LOCAL\" -d \"$REMOTE\" --nolangwarn<br />
	[difftool "vscode"]<br />
	    cmd = code --wait --diff $LOCAL $REMOTE
</p>
]]></description><guid isPermaLink="false">21186</guid><pubDate>Thu, 11 Jul 2019 09:55:51 +0000</pubDate></item><item><title>Odd calls of external Pas2Yaml parser</title><link>https://legacy-forum.plasticscm.com/topic/20701-odd-calls-of-external-pas2yaml-parser/</link><description><![CDATA[
<p>
	I have got an odd issue with the the Pas2Yaml parser (modified to accept the additional encoding line):
</p>

<p>
	It seems never to get the 'end' line:
</p>

<p>
	This is the debug output:
</p>

<p>
	READY<br />
	Received line: PathToTemp\u_RRMTP1b.pas-revBASE.svn00d.tmp.pas<br />
	Received encoding: Windows-1252<br />
	Received outputfile: PathToTemp\c525fb84-6c8e-4ec9-8e5f-98c290e1e165.tree<br />
	Parsed and writing to outputfile: PathToTemp\c525fb84-6c8e-4ec9-8e5f-98c290e1e165.tree<br />
	wrote OK<br />
	Received line: PathTo\src\u_RRMTP1b.pas<br />
	Received encoding: Windows-1252<br />
	Received outputfile: PathToTemp\b662819d-08d3-4be6-a680-db2067828443.tree<br />
	Parsed and writing to outputfile: PathToTemp\b662819d-08d3-4be6-a680-db2067828443.tree<br />
	wrote OK<br />
	Received line:<br />
	Received line:<br />
	Received line:
</p>

<p>
	[and lots of more empty lines]
</p>

<p>
	And that's it. After these lines it only gets empty lines and never gets the 'end' line.
</p>

<p>
	I configured SemanticMerge for use as an external diff viewer in Tortoise svn like this:
</p>

<p>
	PathTo\semanticmergetool.exe -s=%base -d=%mine -ep=PathTo\pas2yaml.exe
</p>

<p>
	Based on this I would expect exactly two file sets being passed to pas2yaml:
</p>

<p>
	1. The base file + its encoding + output file for it:
</p>

<p>
	PathToTemp\u_RRMTP1b.pas-revBASE.svn00b.tmp.pas
</p>

<p>
	Windows-1252
</p>

<p>
	PathToTemp\a0f73627-d2e0-4662-9653-aac4a138994a.tree
</p>

<p>
	2. My modified file + its encoding + output file for it:
</p>

<p>
	PathTo\src\u_RRMTP1b.pas<br />
	Windows-1252<br />
	PathToTemp\57f72391-a859-45d2-bb17-cace52d03314.tree
</p>

<p>
	Followed by a line containing 'end'.
</p>

<p>
	Instead of the 'end' line I get an empty line for each call to ReadLn.
</p>

<p>
	My question is: Are we sure that SemanticMerge 2.0 calls external parsers the way it is documented?
</p>

<p>
	It is possible, that the created yaml files are not valid, I haven't checked that. Maybe SemanticMerge does not send the 'end' line in that case?
</p>
]]></description><guid isPermaLink="false">20701</guid><pubDate>Wed, 02 Jan 2019 15:27:43 +0000</pubDate></item><item><title>Delphi parser development</title><link>https://legacy-forum.plasticscm.com/topic/1857-delphi-parser-development/</link><description><![CDATA[
<div>Hi all,</div>
<br /><div> </div>
<br /><div>Delphi support is the top 5 request in our User Voice: Delphi support in SemanticMerge. So we're eager to add Object Pascal to the list of supported languages.</div>
<br /><div> </div>
<br /><div>In order to do so we’ve developed a way to plug-in external parsers, so if you can develop a Delphi language parser it will be very simple to get it invoked from Semantic.</div>
<br /><div> </div>
<br /><div> </div>
<br /><div> </div>
<br /><div>If you’re interested on joining our “Delphi Parser” effort, please join this thread and we will send you the required tools.</div>
<br /><div> </div>
<br /><div>Right now all what plugin a parser requires is:</div>
<br /><div> </div>
<br /><div>* Create an standalone executable.</div>
<br /><div>* Able to receive some data as arguments.</div>
<br /><div>* And able to export the "tree" of the file in YAML format.</div>
<br /><div> </div>
<br /><div>Of course you'll need all the details but this is just an intro of what it takes.</div>
<br /><div> </div>
<br /><div>We've also developed tools to help testing the parsers, like a "directory parser" which will loop through a code tree parsing (invoking your parser) and then rebuilding the source file making sure the original and the regenerated ones match.</div>
<br /><div> </div>
<br /><div>We're eager to get this started!</div>
<br /><div> </div>
<br /><div>pablo</div>
]]></description><guid isPermaLink="false">1857</guid><pubDate>Tue, 03 Sep 2013 12:40:17 +0000</pubDate></item><item><title>Java 8 support</title><link>https://legacy-forum.plasticscm.com/topic/3255-java-8-support/</link><description><![CDATA[
<p>Are there any plans on supporting Java 8?</p>
<p>We find that the parser chokes on simple closures.</p>
]]></description><guid isPermaLink="false">3255</guid><pubDate>Thu, 24 Dec 2015 04:11:55 +0000</pubDate></item><item><title>Official docu to create external parsers</title><link>https://legacy-forum.plasticscm.com/topic/20170-official-docu-to-create-external-parsers/</link><description><![CDATA[
<p>
	Hi,
</p>

<p>
	 
</p>

<p>
	We are happy to announce we just published the official docu explaining how to write external parsers for both SemanticMerge and Plastic SCM!
</p>

<p>
	 
</p>

<p>
	<a href="https://users.semanticmerge.com/documentation/external-parsers/external-parsers-guide.shtml" rel="external nofollow">https://users.semanticmerge.com/documentation/external-parsers/external-parsers-guide.shtml</a>
</p>

<p>
	 
</p>

<p>
	Hope it helps!
</p>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">20170</guid><pubDate>Wed, 14 Dec 2016 22:58:58 +0000</pubDate></item><item><title>Groovy support</title><link>https://legacy-forum.plasticscm.com/topic/3257-groovy-support/</link><description><![CDATA[
<p>Are there any plans to support Groovy? </p>
<p>Where does it stand compared to the priorities of other languages?</p>
]]></description><guid isPermaLink="false">3257</guid><pubDate>Thu, 24 Dec 2015 04:12:56 +0000</pubDate></item><item><title>Properties/INI files support</title><link>https://legacy-forum.plasticscm.com/topic/3258-propertiesini-files-support/</link><description><![CDATA[
<p>Are there any plans to support key/value configuration files.</p>
<p>For example Java Property format, or INI (with sections)? </p>
<p> </p>
<p>Where does it stand compared to the priorities of other languages?</p>
]]></description><guid isPermaLink="false">3258</guid><pubDate>Thu, 24 Dec 2015 04:14:11 +0000</pubDate></item><item><title>Scala support</title><link>https://legacy-forum.plasticscm.com/topic/2844-scala-support/</link><description><![CDATA[
<p>Hi,</p>
<p> </p>
<p>I'm finishing off an open source Scala plugin for Semantic Merge, I've attached some teaser screenshots with this post.</p>
<p> </p>
<p> </p>
<p>It already allows Semantic Merge do successfully diff and merge Scala source files; however I am currently working through replacing the TODOs with descriptions of the language constructs.</p>
<p> </p>
<p>The code is over at GitHub:-</p>
<p> </p>
<p><a href="https://github.com/sageserpent-open/SemanticMergeScalaPlugin.git" rel="external nofollow">https://github.com/sageserpent-open/SemanticMergeScalaPlugin.git</a></p>
<p> </p>
<p>I'll think of a nice way of distributing this plugin, currently you'll have to build it for yourselves, which isn't difficult, but we'd all like a more shrink-wrapped product.</p>
<p> </p>
<p>Enjoy!</p>
<p> </p>
<p>Gerard</p>
<p><a class="ipsAttachLink ipsAttachLink_image" href="//media.invisioncic.com/r155069/monthly_06_2015/post-3416-0-90168300-1433745080.png" rel=""><img src="https://media.invisioncic.com/r155069/monthly_06_2015/post-3416-0-90168300-1433745080_thumb.png" data-fileid="%7B___base_url___%7D/applications/core/interface/file/attachment.php?id=900" class="ipsImage ipsImage_thumbnailed" alt="post-3416-0-90168300-1433745080_thumb.png" /></a></p>
<p><a class="ipsAttachLink ipsAttachLink_image" href="//media.invisioncic.com/r155069/monthly_06_2015/post-3416-0-44368500-1433745087.png" rel=""><img src="https://media.invisioncic.com/r155069/monthly_06_2015/post-3416-0-44368500-1433745087_thumb.png" data-fileid="%7B___base_url___%7D/applications/core/interface/file/attachment.php?id=901" class="ipsImage ipsImage_thumbnailed" alt="post-3416-0-44368500-1433745087_thumb.png" /></a></p>
<p><a class="ipsAttachLink ipsAttachLink_image" href="//media.invisioncic.com/r155069/monthly_06_2015/post-3416-0-35860700-1433745094.png" rel=""><img src="https://media.invisioncic.com/r155069/monthly_06_2015/post-3416-0-35860700-1433745094_thumb.png" data-fileid="%7B___base_url___%7D/applications/core/interface/file/attachment.php?id=902" class="ipsImage ipsImage_thumbnailed" alt="post-3416-0-35860700-1433745094_thumb.png" /></a></p>
<p><a class="ipsAttachLink ipsAttachLink_image" href="//media.invisioncic.com/r155069/monthly_06_2015/post-3416-0-40097900-1433745100.png" rel=""><img src="https://media.invisioncic.com/r155069/monthly_06_2015/post-3416-0-40097900-1433745100_thumb.png" data-fileid="%7B___base_url___%7D/applications/core/interface/file/attachment.php?id=903" class="ipsImage ipsImage_thumbnailed" alt="post-3416-0-40097900-1433745100_thumb.png" /></a></p>
]]></description><guid isPermaLink="false">2844</guid><pubDate>Mon, 08 Jun 2015 06:32:01 +0000</pubDate></item><item><title>Use of 'name' attribute in YAML container.</title><link>https://legacy-forum.plasticscm.com/topic/2186-use-of-name-attribute-in-yaml-container/</link><description><![CDATA[
<p>Hi,</p>
<p> </p>
<p>I'm thinking about the feasibility of implementing an external parser for Semantic Merge for F# - this *might* handle code that defines anonymous functions.</p>
<p> </p>
<p>Looking at the container definition in the description of the generated YAML file, is it absolutely necessary to populate the 'name' attribute - or can the core Semantic Merge engine work with anonymous containers?</p>
<p> </p>
<p>My guess is that it can, because the names can change for a construct between files due to renaming, but I'd like to check first....</p>
<p> </p>
<p> </p>
<p>Regards,</p>
<p> </p>
<p>Gerard</p>
]]></description><guid isPermaLink="false">2186</guid><pubDate>Thu, 17 Apr 2014 08:15:30 +0000</pubDate></item><item><title>What's wrong with this YAML input?</title><link>https://legacy-forum.plasticscm.com/topic/2304-whats-wrong-with-this-yaml-input/</link><description><![CDATA[
<p>Hi,</p>
<p> </p>
<p>I'm feeding the following YAML files to Semantic Merge as output from the FSharp plugin:-</p>
<p> </p>
<div>---</div>
<div>type : file</div>
<div>name : C:\Users\Gerard Murphy\AppData\Local\PlasticSCM4\semanticmerge\samples\Java\Socket\src.fs</div>
<div>locationSpan : {start: [3,4], end: [7,0]}</div>
<div>footerSpan : [0, -1]</div>
<div>parsingErrorsDetected : False</div>
<div>children :</div>
<div>  - type : namespace</div>
<div>    name : Foo</div>
<div>    locationSpan : {start: [3,4], end: [7,0]}</div>
<div>    headerSpan : [0, -1]</div>
<div>    footerSpan : [0, -1]</div>
<div> </div>
<div>
<div>---</div>
<div>type : file</div>
<div>name : C:\Users\Gerard Murphy\AppData\Local\PlasticSCM4\semanticmerge\samples\Java\Socket\dst.fs</div>
<div>locationSpan : {start: [3,4], end: [7,0]}</div>
<div>footerSpan : [0, -1]</div>
<div>parsingErrorsDetected : False</div>
<div>children :</div>
<div>  - type : namespace</div>
<div>    name : Boo</div>
<div>    locationSpan : {start: [3,4], end: [7,0]}</div>
<div>    headerSpan : [0, -1]</div>
<div>    footerSpan : [0, -1]</div>
</div>
<div> </div>
<div>(Don't worry about the 'Java' in the path - I just placed my F# files in the samples directory to re-use the sample scripts with minimal changes).</div>
<div> </div>
<div>Semantic Merge shows an error dialog indicating what looks like a null reference exception, see attachment below.</div>
<div> </div>
<div>The stack trace is also attached below.</div>
<div> </div>
<div>Do you have any pointers as to what is going wrong? While the plugin is still at a very early stage, I'm keen to make sure I've got the YAML protocol part correct before going further.</div>
<div> </div>
<div>Three things that spring to mind immediately to me are:-</div>
<div> </div>
<div>1. Can the headers and footers be set to the default of [0, -1], or are they required?</div>
<div>2. My reading of the informal specification given the Delphi plugin developers implies that I don't need to populate any terminal nodes in the YAML - is this the case?</div>
<div>3. Did I get a flag wrong on the command line? I am using:-</div>
<div> </div>
<div>set mergeOptions= -ep=""C:\PlasticSCMWorkspaces\SemanticMergeFSharpPlugin\FSharpPlugin\bin\Debug\FsharpPlugin.exe"" %contributorFiles%%resultFile%%difftool%%mergetool%</div>
<div> </div>
<div>Regards,</div>
<div> </div>
<div>Gerard</div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<p><a class="ipsAttachLink ipsAttachLink_image" href="//media.invisioncic.com/r155069/monthly_07_2014/post-3416-0-41721700-1406489948.png" rel=""><img src="https://media.invisioncic.com/r155069/monthly_07_2014/post-3416-0-41721700-1406489948_thumb.png" data-fileid="%7B___base_url___%7D/applications/core/interface/file/attachment.php?id=763" class="ipsImage ipsImage_thumbnailed" alt="post-3416-0-41721700-1406489948_thumb.png" /></a></p>
<p><a class="ipsAttachLink ipsAttachLink_image" href="//media.invisioncic.com/r155069/monthly_07_2014/post-3416-0-28327400-1406490542.png" rel=""><img src="https://media.invisioncic.com/r155069/monthly_07_2014/post-3416-0-28327400-1406490542_thumb.png" data-fileid="%7B___base_url___%7D/applications/core/interface/file/attachment.php?id=764" class="ipsImage ipsImage_thumbnailed" alt="post-3416-0-28327400-1406490542_thumb.png" /></a></p>
]]></description><guid isPermaLink="false">2304</guid><pubDate>Sun, 27 Jul 2014 19:53:35 +0000</pubDate></item></channel></rss>
