<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>irony Forum Rss Feed</title><link>http://www.codeplex.com/irony/Thread/List.aspx</link><description>irony Forum Rss Description</description><item><title>New Post: System.NullReferenceException in BuildAst</title><link>http://irony.codeplex.com/discussions/444049</link><description>&lt;div style="line-height: normal;"&gt;Hi Roman, thanks for your reply.&lt;br /&gt;
&lt;br /&gt;
I've started by stripping my grammar to bare minimum (only numbers and operators) but had the same issue. During debugging I found that DefaultLiteralNodeType was null and found &lt;a href="http://irony.codeplex.com/discussions/346530" rel="nofollow"&gt;this discussion&lt;/a&gt; that explained what was going on. Overriding BuildAst() did the trick and I got the basic grammar working. I'll start adding more stuff to my grammar and see what happens. At least I've got slightly better understanding of how it all works now.&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
&lt;/div&gt;</description><author>jarin</author><pubDate>Sat, 18 May 2013 17:52:28 GMT</pubDate><guid isPermaLink="false">New Post: System.NullReferenceException in BuildAst 20130518055228P</guid></item><item><title>New Post: System.NullReferenceException in BuildAst</title><link>http://irony.codeplex.com/discussions/444049</link><description>&lt;div style="line-height: normal;"&gt;at first look, you are missing AST node type for colname terminal. Stop in debugger on exception and look around on data involved (which non-terminal/terminal is there). But this is my guess - colname. You have to provide AstNode implementation - a class that knows how to interpret the colname at runtime. &lt;br /&gt;
Let me know if you're stuck, I may be able to investigate in details later&lt;br /&gt;
Roman&lt;br /&gt;
&lt;/div&gt;</description><author>rivantsov</author><pubDate>Sat, 18 May 2013 04:11:13 GMT</pubDate><guid isPermaLink="false">New Post: System.NullReferenceException in BuildAst 20130518041113A</guid></item><item><title>New Post: System.NullReferenceException in BuildAst</title><link>http://irony.codeplex.com/discussions/444049</link><description>&lt;div style="line-height: normal;"&gt;I've got very simple grammar adapted from &amp;quot;Writing a calculator in C# using Irony&amp;quot; sample (see below) and parsing works fine, however when I add &lt;br /&gt;
&lt;pre&gt;&lt;code&gt;LanguageFlags = LanguageFlags.CreateAst;&lt;/code&gt;&lt;/pre&gt;

to generate AST I get following error in Parser Output tab:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;AstNodeType or AstNodeCreator is not set on non-terminals: Irony.Parsing.BnfTermList. Either set Term.AstConfig.NodeType, or provide default values in AstContext.&lt;/code&gt;&lt;/pre&gt;

and an exception in Irony Grammar Explorer:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;System.NullReferenceException: Object reference not set to an instance of an object.
   at Irony.Ast.AstBuilder.BuildAst(ParseTreeNode parseNode) in C:\Programming\Irony_2013_03_10\Irony_2013_03_10\Irony\Ast\AstBuilder.cs:line 97
   at Irony.Ast.AstBuilder.BuildAst(ParseTreeNode parseNode) in C:\Programming\Irony_2013_03_10\Irony_2013_03_10\Irony\Ast\AstBuilder.cs:line 86
   at Irony.Ast.AstBuilder.BuildAst(ParseTree parseTree) in C:\Programming\Irony_2013_03_10\Irony_2013_03_10\Irony\Ast\AstBuilder.cs:line 38
   at Irony.Parsing.Grammar.BuildAst(LanguageData language, ParseTree parseTree) in C:\Programming\Irony_2013_03_10\Irony_2013_03_10\Irony\Parsing\Grammar\Grammar.cs:line 499
   at Irony.Parsing.Parser.Parse(String sourceText, String fileName) in C:\Programming\Irony_2013_03_10\Irony_2013_03_10\Irony\Parsing\Parser\Parser.cs:line 88
   at Irony.GrammarExplorer.fmGrammarExplorer.ParseSample() in C:\Programming\Irony_2013_03_10\Irony_2013_03_10\Irony.GrammarExplorer\fmGrammarExplorer.cs:line 359
   at Irony.GrammarExplorer.fmGrammarExplorer.btnParse_Click(Object sender, EventArgs e) in C:\Programming\Irony_2013_03_10\Irony_2013_03_10\Irony.GrammarExplorer\fmGrammarExplorer.cs:line 507
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message&amp;amp; m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message&amp;amp; m)
   at System.Windows.Forms.ButtonBase.WndProc(Message&amp;amp; m)
   at System.Windows.Forms.Button.WndProc(Message&amp;amp; m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)&lt;/code&gt;&lt;/pre&gt;

My grammar is:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;public class TestGrammar1 : Grammar
    {
        public TestGrammar1 () : base(false)
        {
            var number = new NumberLiteral(&amp;quot;number&amp;quot;, NumberOptions.AllowSign | NumberOptions.AllowStartEndDot);
            var fnname = new IdentifierTerminal(&amp;quot;fnname&amp;quot;);
            
            var colname = new StringLiteral(&amp;quot;colname&amp;quot;);
            colname.AddStartEnd(&amp;quot;[&amp;quot;, &amp;quot;]&amp;quot;, StringOptions.None);

            var expression = new NonTerminal(&amp;quot;expression&amp;quot;);
            var binexpr = new NonTerminal(&amp;quot;binexpr&amp;quot;, typeof(BinaryOperationNode));
            var parexpr = new NonTerminal(&amp;quot;parexpr&amp;quot;);
            var fncall = new NonTerminal(&amp;quot;fncall&amp;quot;, typeof(FunctionCallNode));
            var binop = new NonTerminal(&amp;quot;binop&amp;quot;, &amp;quot;operator&amp;quot;);

            expression.Rule = parexpr | binexpr | number | colname | fncall;
            parexpr.Rule = &amp;quot;(&amp;quot; + expression + &amp;quot;)&amp;quot;;
            binexpr.Rule = expression + binop + expression;
            binop.Rule = ToTerm(&amp;quot;+&amp;quot;) | &amp;quot;-&amp;quot; | &amp;quot;/&amp;quot; | &amp;quot;*&amp;quot;;
            fncall.Rule = fnname + &amp;quot;(&amp;quot; + expression + &amp;quot;)&amp;quot;;
            this.Root = expression;

            MarkPunctuation(&amp;quot;(&amp;quot;,&amp;quot;)&amp;quot;);

            RegisterOperators(1, &amp;quot;+&amp;quot;, &amp;quot;-&amp;quot;);
            RegisterOperators(2, &amp;quot;*&amp;quot;, &amp;quot;/&amp;quot;);
            AddOperatorReportGroup(&amp;quot;operator&amp;quot;);
            
            MarkTransient(parexpr, expression, binop);
            LanguageFlags = LanguageFlags.CreateAst;
        }
    }&lt;/code&gt;&lt;/pre&gt;

My test expression:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;sum([a])&lt;/code&gt;&lt;/pre&gt;

Can somebody please help me figure out what's wrong with my grammar?&lt;br /&gt;
Thanks!&lt;br /&gt;
&lt;/div&gt;</description><author>jarin</author><pubDate>Fri, 17 May 2013 13:24:11 GMT</pubDate><guid isPermaLink="false">New Post: System.NullReferenceException in BuildAst 20130517012411P</guid></item><item><title>New Post: Fatal error in code colorizer.Colorizing has been disabled</title><link>http://irony.codeplex.com/discussions/438465</link><description>&lt;div style="line-height: normal;"&gt;hi&lt;br /&gt;
sorry, do not have much time right now, it would be a few days&lt;br /&gt;
Roman&lt;br /&gt;
&lt;/div&gt;</description><author>rivantsov</author><pubDate>Tue, 14 May 2013 21:24:21 GMT</pubDate><guid isPermaLink="false">New Post: Fatal error in code colorizer.Colorizing has been disabled 20130514092421P</guid></item><item><title>New Post: Fatal error in code colorizer.Colorizing has been disabled</title><link>http://irony.codeplex.com/discussions/438465</link><description>&lt;div style="line-height: normal;"&gt;As-Salam-wa-alicum&lt;br /&gt;
&lt;br /&gt;
Sir,&lt;br /&gt;
&lt;br /&gt;
Thank you very much for your effort but the way you advice need so many work at comiletime to determine the actual thing because of its generality &lt;br /&gt;
and it is possible to make it a little more specific.I did it but when I try to refactor emofAttributeDiclaration,functionSignatureBody and ArrayType so &lt;br /&gt;
many conflict come.Please help me here.My grammar file and the test file is &lt;a href="http://ge.tt/67HuuRg" rel="nofollow"&gt;here&lt;/a&gt;  By the way do you have the original grammar&lt;br /&gt;
file on which you do work to fix conflict?&lt;br /&gt;
&lt;br /&gt;
Thank you very much again for reading my mail by spending your valuable time and working on it.&lt;br /&gt;
&lt;br /&gt;
With regards&lt;br /&gt;
Nadvi&lt;br /&gt;
&lt;/div&gt;</description><author>nadvi</author><pubDate>Sun, 12 May 2013 15:10:37 GMT</pubDate><guid isPermaLink="false">New Post: Fatal error in code colorizer.Colorizing has been disabled 20130512031037P</guid></item><item><title>New Post: "Reduce-reduce" errors eat my lunch; we really need some context on them</title><link>http://irony.codeplex.com/discussions/441610</link><description>&lt;div style="line-height: normal;"&gt;Thanks for the clue! I've got it all figured out. Here's a little documentation for anyone else dealing with Reduce-Reduce errors:&lt;br /&gt;
&lt;br /&gt;
You can only have one of each RValue (right-hand side of the arror value) in the &amp;quot;Reduce Items&amp;quot; section. If you have more than one it can't decide which non-terminal to use in a given scenario. (It likely doesn't matter which one gets used; I guess Irony doesn't want to take any chances.)&lt;br /&gt;
&lt;br /&gt;
This won't work as all child trees support an Empty:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;foreach(var group in groups)
{
   ....
   var myRule = ....;
   myRule.Rule = MakeStarRule(myRule, eachRowOfMyRule);

   if(program.Rule == null)
       program.Rule = myRule;
   else program.Rule |= myRule;
}
&lt;/code&gt;&lt;/pre&gt;

You have to do it like this instead:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;foreach(var group in groups)
{
   ....
   var myRule = ....;
   if(program.Rule == null)
      myRule.Rule = MakeStarRule(myRule, eachRowOfMyRule);
   else
      myRule.Rule = MakePlusRule(myRule, eachRowOfMyRule);

   if(program.Rule == null)
       program.Rule = myRule;
   else program.Rule |= myRule;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;</description><author>brantheman</author><pubDate>Fri, 26 Apr 2013 21:45:58 GMT</pubDate><guid isPermaLink="false">New Post: "Reduce-reduce" errors eat my lunch; we really need some context on them 20130426094558P</guid></item><item><title>New Post: "Reduce-reduce" errors eat my lunch; we really need some context on them</title><link>http://irony.codeplex.com/discussions/441610</link><description>&lt;div style="line-height: normal;"&gt;my guess is that you have several optional sections, optionally (!) included, and parser does not know how to interpret an empty file. To say more, I need to see the grammar&lt;br /&gt;
&lt;/div&gt;</description><author>rivantsov</author><pubDate>Fri, 26 Apr 2013 20:55:00 GMT</pubDate><guid isPermaLink="false">New Post: "Reduce-reduce" errors eat my lunch; we really need some context on them 20130426085500P</guid></item><item><title>New Post: "Reduce-reduce" errors eat my lunch; we really need some context on them</title><link>http://irony.codeplex.com/discussions/441610</link><description>&lt;div style="line-height: normal;"&gt;Here is the output from Grammar Explorer. I assume that I look in the &amp;quot;Reduce Items&amp;quot; section, but I don't know what to look for there.&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;State S0 (Inadequate)
  Reduce-reduce conflicts on inputs: EOF LF
  Shift items:
    Program' -&amp;gt; ·Program EOF 
    Program -&amp;gt; ·StartSection.grp1 
    StartSection.grp1 -&amp;gt; ·StartSectionRow.grp1+ 
    StartSectionRow.grp1+ -&amp;gt; ·StartSectionRow.grp1+ StartSectionRow.grp1 
    StartSectionRow.grp1+ -&amp;gt; ·StartSectionRow.grp1 
    StartSectionRow.grp1 -&amp;gt; ·OptionalTelemetryTriples.grp1 LF 
    OptionalTelemetryTriples.grp1 -&amp;gt; ·TelemetryTriples.grp1 
    TelemetryTriples.grp1 -&amp;gt; ·Telemetry 
    Telemetry -&amp;gt; ·until Unnamed0 Telemetry.Operator Telemetry.Value OptionalMetric 
    TelemetryTriples.grp1 -&amp;gt; ·Telemetry 
    Telemetry -&amp;gt; ·until Unnamed1 Telemetry.Operator Telemetry.Value OptionalMetric 
    StartSectionRow.grp1 -&amp;gt; ·ActionTriplet.grp1 OptionalTelemetryTriples.grp1 LF 
    ActionTriplet.grp1 -&amp;gt; ·ActionSetTriples.grp1 
    ActionSetTriples.grp1 -&amp;gt; ·Action 
    Action -&amp;gt; ·set Unnamed2 at Action.Value OptionalMetric 
    ActionSetTriples.grp1 -&amp;gt; ·Action 
    Action -&amp;gt; ·set Unnamed3 at Action.Value OptionalMetric 
    ActionTriplet.grp1 -&amp;gt; ·ActionIncTriples.grp1 
    ActionIncTriples.grp1 -&amp;gt; ·Action 
    Action -&amp;gt; ·inc Unnamed4 by Action.Value OptionalMetric 
    ActionIncTriples.grp1 -&amp;gt; ·Action 
    Action -&amp;gt; ·inc Unnamed5 by Action.Value OptionalMetric 
    ActionTriplet.grp1 -&amp;gt; ·ActionDecTriples.grp1 
    ActionDecTriples.grp1 -&amp;gt; ·Action 
    Action -&amp;gt; ·dec Unnamed6 by Action.Value OptionalMetric 
    ActionDecTriples.grp1 -&amp;gt; ·Action 
    Action -&amp;gt; ·dec Unnamed7 by Action.Value OptionalMetric 
    ActionTriplet.grp1 -&amp;gt; ·ActionMulTriples.grp1 
    ActionMulTriples.grp1 -&amp;gt; ·Action 
    Action -&amp;gt; ·mul Unnamed8 by Action.Value OptionalMetric 
    ActionMulTriples.grp1 -&amp;gt; ·Action 
    Action -&amp;gt; ·mul Unnamed9 by Action.Value OptionalMetric 
    Program -&amp;gt; ·StartSection.grp2 
    StartSection.grp2 -&amp;gt; ·StartSectionRow.grp2+ 
    StartSectionRow.grp2+ -&amp;gt; ·StartSectionRow.grp2+ StartSectionRow.grp2 
    StartSectionRow.grp2+ -&amp;gt; ·StartSectionRow.grp2 
    StartSectionRow.grp2 -&amp;gt; ·OptionalTelemetryTriples.grp2 LF 
    OptionalTelemetryTriples.grp2 -&amp;gt; ·TelemetryTriples.grp2 
    TelemetryTriples.grp2 -&amp;gt; ·Telemetry 
    Telemetry -&amp;gt; ·until Unnamed10 Telemetry.Operator Tail OptionalMetric 
    TelemetryTriples.grp2 -&amp;gt; ·Telemetry 
    Telemetry -&amp;gt; ·until Unnamed11 Telemetry.Operator Telemetry.Value OptionalMetric 
    StartSectionRow.grp2 -&amp;gt; ·ActionTriplet.grp2 OptionalTelemetryTriples.grp2 LF 
    ActionTriplet.grp2 -&amp;gt; ·ActionSetTriples.grp2 
    ActionSetTriples.grp2 -&amp;gt; ·Action 
    Action -&amp;gt; ·set Unnamed12 at Action.Value OptionalMetric 
    ActionTriplet.grp2 -&amp;gt; ·ActionIncTriples.grp2 
    ActionIncTriples.grp2 -&amp;gt; ·Action 
    Action -&amp;gt; ·inc Unnamed13 by Action.Value OptionalMetric 
    ActionTriplet.grp2 -&amp;gt; ·ActionDecTriples.grp2 
    ActionDecTriples.grp2 -&amp;gt; ·Action 
    Action -&amp;gt; ·dec Unnamed14 by Action.Value OptionalMetric 
    ActionTriplet.grp2 -&amp;gt; ·ActionMulTriples.grp2 
    ActionMulTriples.grp2 -&amp;gt; ·Action 
    Action -&amp;gt; ·mul Unnamed15 by Action.Value OptionalMetric 
  Reduce items:
    StartSection.grp1 -&amp;gt; · [EOF]
    OptionalTelemetryTriples.grp1 -&amp;gt; · [LF]
    StartSection.grp2 -&amp;gt; · [EOF]
    OptionalTelemetryTriples.grp2 -&amp;gt; · [LF]
  Transitions: Program-&amp;gt;S1, StartSection.grp1-&amp;gt;S2, StartSectionRow.grp1+-&amp;gt;S3, StartSectionRow.grp1-&amp;gt;S4, OptionalTelemetryTriples.grp1-&amp;gt;S5, TelemetryTriples.grp1-&amp;gt;S6, Telemetry-&amp;gt;S7, until-&amp;gt;S8, Telemetry-&amp;gt;S9, ActionTriplet.grp1-&amp;gt;S10, ActionSetTriples.grp1-&amp;gt;S11, Action-&amp;gt;S12, set-&amp;gt;S13, Action-&amp;gt;S14, ActionIncTriples.grp1-&amp;gt;S15, Action-&amp;gt;S16, inc-&amp;gt;S17, Action-&amp;gt;S18, ActionDecTriples.grp1-&amp;gt;S19, Action-&amp;gt;S20, dec-&amp;gt;S21, Action-&amp;gt;S22, ActionMulTriples.grp1-&amp;gt;S23, Action-&amp;gt;S24, mul-&amp;gt;S25, Action-&amp;gt;S26, StartSection.grp2-&amp;gt;S27, StartSectionRow.grp2+-&amp;gt;S28, StartSectionRow.grp2-&amp;gt;S29, OptionalTelemetryTriples.grp2-&amp;gt;S30, TelemetryTriples.grp2-&amp;gt;S31, Telemetry-&amp;gt;S32, Telemetry-&amp;gt;S33, ActionTriplet.grp2-&amp;gt;S34, ActionSetTriples.grp2-&amp;gt;S35, Action-&amp;gt;S36, ActionIncTriples.grp2-&amp;gt;S37, Action-&amp;gt;S38, ActionDecTriples.grp2-&amp;gt;S39, Action-&amp;gt;S40, ActionMulTriples.grp2-&amp;gt;S41, Action-&amp;gt;S42
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;</description><author>brantheman</author><pubDate>Fri, 26 Apr 2013 20:33:40 GMT</pubDate><guid isPermaLink="false">New Post: "Reduce-reduce" errors eat my lunch; we really need some context on them 20130426083340P</guid></item><item><title>New Post: Fatal error in code colorizer.Colorizing has been disabled</title><link>http://irony.codeplex.com/discussions/438465</link><description>&lt;div style="line-height: normal;"&gt;Man, it's time to take over the thing, rollup your sleeves and start pushing it. I've fixed all the conflicts (the most serious ones), so now you can move in small increments. Just start modifying this parameter definition when it is a 'lambda' to bring back the old code I removed - as far as I understand this is the problem now&lt;br /&gt;
Try it, read something about LALR parsing and about conflicts, try it again. Let me know if you're stuck&lt;br /&gt;
Roman&lt;br /&gt;
&lt;/div&gt;</description><author>rivantsov</author><pubDate>Fri, 26 Apr 2013 17:16:58 GMT</pubDate><guid isPermaLink="false">New Post: Fatal error in code colorizer.Colorizing has been disabled 20130426051658P</guid></item><item><title>New Post: "Reduce-reduce" errors eat my lunch; we really need some context on them</title><link>http://irony.codeplex.com/discussions/441610</link><description>&lt;div style="line-height: normal;"&gt;well sorry for your lunch, but - don't quite get what's the problem with the conflict? did you try to double-click on conflict message in Grammar Explorer? It will bring you to the state printout, which show you all.&lt;br /&gt;
About NewLineBeforeEOF - this has no impact on parser construction. It is at runtime, when parsing, the scanner injects NewLine before sending EOF to parser, just to adjust for source files that have no final line-break, but the language is line-based. &lt;br /&gt;
&lt;/div&gt;</description><author>rivantsov</author><pubDate>Fri, 26 Apr 2013 17:13:11 GMT</pubDate><guid isPermaLink="false">New Post: "Reduce-reduce" errors eat my lunch; we really need some context on them 20130426051311P</guid></item><item><title>New Post: "Reduce-reduce" errors eat my lunch; we really need some context on them</title><link>https://irony.codeplex.com/discussions/441610</link><description>&lt;div style="line-height: normal;"&gt;&amp;quot;Reduce-reduce conflict. State S0, lookaheads: EOF LF. Selected reduce on first production in conflict set. (S0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
My grammar file is only 170 lines long, but I still have absolutely no idea where to even start with an error like this. Can we put the nearest non-terminal name in the error somewhere?&lt;br /&gt;
&lt;br /&gt;
Also, I thought Irony treated EOF as an alternate for LF if I used this: LanguageFlags |= LanguageFlags.NewLineBeforeEOF. Is that not true? Why would it have a conflict between the two?&lt;br /&gt;
&lt;/div&gt;</description><author>brantheman</author><pubDate>Thu, 25 Apr 2013 21:31:33 GMT</pubDate><guid isPermaLink="false">New Post: "Reduce-reduce" errors eat my lunch; we really need some context on them 20130425093133P</guid></item><item><title>New Post: "Reduce-reduce" errors eat my lunch; we really need some context on them</title><link>http://irony.codeplex.com/discussions/441610</link><description>&lt;div style="line-height: normal;"&gt;&amp;quot;Reduce-reduce conflict. State S0, lookaheads: EOF LF. Selected reduce on first production in conflict set. (S0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
My grammar file is only 170 lines long, but I still have absolutely no idea where to even start with an error like this. Can we put the nearest non-terminal name in the error somewhere?&lt;br /&gt;
&lt;br /&gt;
Also, I thought Irony treated EOF as an alternate for LF if I used this: LanguageFlags |= LanguageFlags.NewLineBeforeEOF. Is that not true? Why would it have a conflict between the two?&lt;br /&gt;
&lt;/div&gt;</description><author>brantheman</author><pubDate>Thu, 25 Apr 2013 21:31:33 GMT</pubDate><guid isPermaLink="false">New Post: "Reduce-reduce" errors eat my lunch; we really need some context on them 20130425093133P</guid></item><item><title>New Post: Fatal error in code colorizer.Colorizing has been disabled</title><link>http://irony.codeplex.com/discussions/438465</link><description>&lt;div style="line-height: normal;"&gt;As-Salam-wa-alicum&lt;br /&gt;
&lt;br /&gt;
Sir, &lt;br /&gt;
&lt;br /&gt;
Thank you very much . You are working hard for this. In my thesis I will acknowledge you.Actually you removed the iterateExp that's why these lines are not parsed.I have add the code to functionCallArgs but stile it gives parser error.Invalid  character ';' but in immediate previous grammar it was parse able.Please help me here.From this grammar it seems to me that after parsing a lot of work has to do. To avoid the work I explicitly define the expressions .&lt;br /&gt;
&lt;br /&gt;
I uploaded the grammar at &lt;a href="http://ge.tt/4DEXVSe" rel="nofollow"&gt;SLAng grammar&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Thank you very much again for reading my mail by spending your valuable time and working on it.&lt;br /&gt;
&lt;br /&gt;
With regards&lt;br /&gt;
Nadvi&lt;br /&gt;
&lt;/div&gt;</description><author>nadvi</author><pubDate>Thu, 25 Apr 2013 02:51:15 GMT</pubDate><guid isPermaLink="false">New Post: Fatal error in code colorizer.Colorizing has been disabled 20130425025115A</guid></item><item><title>New Post: Fatal error in code colorizer.Colorizing has been disabled</title><link>http://irony.codeplex.com/discussions/438465</link><description>&lt;div style="line-height: normal;"&gt;Now some comments&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;The biggest problem is compound identifier lists - identifiers or function calls connected with dots: 'foo.Bar(x).prop' More problems come from other similar lists with delimiters &amp;quot;::&amp;quot; and &amp;quot;-&amp;gt;&amp;quot; instead of dot. This is a kinda known problem (same happens in c#), attempt to define exact definitions of each list separately brings a lot of conflicts. So the solution is to define one generic list that covers all variations, let it parse, and then verify after parsing that the parsed list is valid for the place in the source. I defined such list as chainedSequenceExt - it is a sequence of identifiers or function calls, optionally starting with &amp;quot;::&amp;quot;, delimited by &amp;quot;::&amp;quot;, &amp;quot;.&amp;quot; or &amp;quot;-&amp;gt;&amp;quot;, and ending with array spec (like [number]). Here is the definition:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;      var sequenceDelimiter = new NonTerminal(&amp;quot;sequenceDelimiter&amp;quot;); //dot, ::,  -&amp;gt;
      var chainedSequence = new NonTerminal(&amp;quot;chainedSequence&amp;quot;);
      var chainedSequenceExt = new NonTerminal(&amp;quot;chainedSequenceExt&amp;quot;); 
      var sequenceMember = new NonTerminal(&amp;quot;sequenceMember&amp;quot;);
      var arrayDim = new NonTerminal(&amp;quot;arrayDim&amp;quot;);
      var arraySpecOpt = new NonTerminal(&amp;quot;arraySpecOpt&amp;quot;);

      sequenceMember.Rule = identifier | functionCall;
      sequenceDelimiter.Rule = dot | scopeIn | propertyIs; // . :: -&amp;gt;
      chainedSequence.Rule = MakePlusRule(chainedSequence, sequenceDelimiter, sequenceMember); 
      arrayDim.Rule = &amp;quot;*&amp;quot; | identifier | number | number + comma + number | number + comma + &amp;quot;*&amp;quot;;
      arraySpecOpt.Rule = Empty | &amp;quot;[&amp;quot; + arrayDim + &amp;quot;]&amp;quot;;
      // Note: defining scopeInOpt (with rule: Empty|scopeIn) - does not work. 
      chainedSequenceExt.Rule = scopeIn + chainedSequence + arraySpecOpt | chainedSequence + arraySpecOpt;
&lt;/code&gt;&lt;/pre&gt;

Use it in all places instead of objectType, customType, etc. I did not remove these, just reassigned them (like 'var customType = chainedSequenceExt;') - cleanup all these. There are many terms and nonTerminals now declared but not used anymore - clean this up.&lt;br /&gt;
And remember - you need to add after-parse verification of the chainedSequenceExt lists. &lt;br /&gt;
&lt;br /&gt;
Note that in most places (like in expression argument), a single identifier is in fact a primitive case of chainedSequenceExt; so if you have already included chainedSequenceExt as an alternative of some rule, do not include identifier - it will bring conflict, because parser does not know which to use to interpret a single identifier.   
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;
Your other trouble comes from the attempt to define concrete function names in grammar (like 'collect', 'insertAt'), and to define rules for using them explicitly. This messes up things completely. Do not do this, they are just function calls, so let them be parsed as this. Recognize them as special, built-in methods when analysing the parse tree. I removed/disabled all these special function definitions &lt;br /&gt;
After this all conflicts are gone. The grammar now 'defines' a broader language, so it must be supplemented with after grammar checks - do it.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;
Had to bring dot as operator back. It appears you allow dot to be applied to expressions, like: &lt;br /&gt;
(t - startDate.inMs()).round()&lt;br /&gt;
&lt;br /&gt;
so added dot to binaryOperator and set to highest prec value&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;
Now have a parse error, unexpected &amp;quot;;&amp;quot; symbol here, right after 'Schedule'&lt;br /&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;  schedule-&amp;gt;iterate(s : Schedule ; 
                    next : Schedule = schedule-&amp;gt;any(true) |
                    if next.nextStartDate(t) = -1   &lt;/code&gt;&lt;/pre&gt;

I did not find &amp;quot;;&amp;quot; symbol defined anywhere in grammar, so this is something missing or not implemented yet. &lt;br /&gt;
&lt;/div&gt;</description><author>rivantsov</author><pubDate>Wed, 24 Apr 2013 20:46:13 GMT</pubDate><guid isPermaLink="false">New Post: Fatal error in code colorizer.Colorizing has been disabled 20130424084613P</guid></item><item><title>New Post: Fatal error in code colorizer.Colorizing has been disabled</title><link>http://irony.codeplex.com/discussions/438465</link><description>&lt;div style="line-height: normal;"&gt;here's fixed version:&lt;br /&gt;
&lt;a href="http://ge.tt/94592ye/v/0?c" rel="nofollow"&gt;http://ge.tt/94592ye/v/0?c&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>rivantsov</author><pubDate>Wed, 24 Apr 2013 20:43:06 GMT</pubDate><guid isPermaLink="false">New Post: Fatal error in code colorizer.Colorizing has been disabled 20130424084306P</guid></item><item><title>New Post: Fatal error in code colorizer.Colorizing has been disabled</title><link>http://irony.codeplex.com/discussions/438465</link><description>&lt;div style="line-height: normal;"&gt;no, nothing is missing, what I meant is that I'm working on it, expect response soon&lt;br /&gt;
&lt;/div&gt;</description><author>rivantsov</author><pubDate>Wed, 24 Apr 2013 16:52:50 GMT</pubDate><guid isPermaLink="false">New Post: Fatal error in code colorizer.Colorizing has been disabled 20130424045250P</guid></item><item><title>New Post: Fatal error in code colorizer.Colorizing has been disabled</title><link>http://irony.codeplex.com/discussions/438465</link><description>&lt;div style="line-height: normal;"&gt;As-Salam-wa-alicum&lt;br /&gt;
&lt;br /&gt;
Sir, &lt;br /&gt;
&lt;br /&gt;
May be the link is missing.&lt;br /&gt;
&lt;br /&gt;
Thank you for response.&lt;br /&gt;
&lt;br /&gt;
With regards&lt;br /&gt;
Nadvi&lt;br /&gt;
&lt;/div&gt;</description><author>nadvi</author><pubDate>Wed, 24 Apr 2013 08:02:50 GMT</pubDate><guid isPermaLink="false">New Post: Fatal error in code colorizer.Colorizing has been disabled 20130424080250A</guid></item><item><title>New Post: Fatal error in code colorizer.Colorizing has been disabled</title><link>http://irony.codeplex.com/discussions/438465</link><description>&lt;div style="line-height: normal;"&gt;looking into this&lt;br /&gt;
&lt;/div&gt;</description><author>rivantsov</author><pubDate>Wed, 24 Apr 2013 07:42:44 GMT</pubDate><guid isPermaLink="false">New Post: Fatal error in code colorizer.Colorizing has been disabled 20130424074244A</guid></item><item><title>New Post: Fatal error in code colorizer.Colorizing has been disabled</title><link>http://irony.codeplex.com/discussions/438465</link><description>&lt;div style="line-height: normal;"&gt;As-Salam-wa-alicum&lt;br /&gt;
&lt;br /&gt;
Sir, &lt;br /&gt;
&lt;br /&gt;
If I remove dot from operator registration I get 8 conflict please help me here .&lt;br /&gt;
&lt;br /&gt;
l uploaded the grammar file at &lt;a href="http://ge.tt/4DEXVSe" rel="nofollow"&gt;SLAng Grammar&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Thank you very much again for reading my mail by spending your valuable time.&lt;br /&gt;
&lt;br /&gt;
With regards&lt;br /&gt;
Nadvi&lt;br /&gt;
&lt;/div&gt;</description><author>nadvi</author><pubDate>Tue, 23 Apr 2013 01:35:05 GMT</pubDate><guid isPermaLink="false">New Post: Fatal error in code colorizer.Colorizing has been disabled 20130423013505A</guid></item><item><title>New Post: Fatal error in code colorizer.Colorizing has been disabled</title><link>http://irony.codeplex.com/discussions/438465</link><description>&lt;div style="line-height: normal;"&gt;As-Salam-wa-alicum&lt;br /&gt;
&lt;br /&gt;
Sir,&lt;br /&gt;
&lt;br /&gt;
Thank you very much for fixing the error .Would you like to advice me on how can I clarify the grammar because after parsing when I process the parse tree or abstract syntax  tree it hep me to do by traversing .&lt;br /&gt;
&lt;br /&gt;
Thank you very much again for reading my mail by spending your valuable time and fixing the error quickly .&lt;br /&gt;
&lt;br /&gt;
With regards&lt;br /&gt;
Nadvi&lt;br /&gt;
&lt;/div&gt;</description><author>nadvi</author><pubDate>Mon, 22 Apr 2013 23:34:29 GMT</pubDate><guid isPermaLink="false">New Post: Fatal error in code colorizer.Colorizing has been disabled 20130422113429P</guid></item></channel></rss>