Recursive descent LL(k) parser for .NET with Fluent API, BNF, EBNF and Gold Grammars
People
Repo info
Activity
Felix Queißner
@MasterQ32
but right now, i can't get generics recognized
the input to the grammar is this:
typet = int<1,2>;
Felix Queißner
@MasterQ32
any idea?
Curtis Wensley
@cwensley
probably due to order of the alternatives, if the binop is matched, it will continue to the next rule but not rewind to try any other alternatives
due to Eto.Parse being recursive descent
Felix Queißner
@MasterQ32
hm, i understand
how can i fix this? change the order of definition?
Curtis Wensley
@cwensley
so if you can get it to try to match the generic type before the binop, then it should theoretically work
rewinding is one feature I'd like to add to Eto.Parse so it'd better handle this situation, but that's a very complex task (;
Felix Queißner
@MasterQ32
can you explain how to interpret the output from Match.Errors ?
Curtis Wensley
@cwensley
it gives you a list of rules that are expected at that particular point in the string.
Felix Queißner
@MasterQ32
okay, i have discovered match.ErrorMessage right now
and i've found the problem: it's the closing >
as it tries to interpret 2> as an expression instead of a end match
Curtis Wensley
@cwensley
makes sense
Felix Queißner
@MasterQ32
yep
i think i can create an acceptable workaround by enforcing parenthesis for advanced expressions
so i would have to do int<1,(2>3)>
Curtis Wensley
@cwensley
are expressions really allowable there? or well I guess this is your own language not c# nevermind.. hehe
Felix Queißner
@MasterQ32
yes, it's my own language :D
C# only allows types for generics
but i'd like to do a more C++esque approach by allowing any literal you can type and create expressions with
what is the error index?
Curtis Wensley
@cwensley
index in the string I believe.. it's been a while since i've used Eto.Parse so forgive me if I'm wrong. (;
_
Felix Queißner
@MasterQ32
okay
hmm
i'm running into more problems :/
Curtis Wensley
@cwensley
uh oh
Felix Queißner
@MasterQ32
okay, i'm really confused
Felix Queißner
@MasterQ32
now it seems that even function signatures are broken
ArsenShnurkov
@ArsenShnurkov
cwensley: i love new implementation of "-" operation
cwensley: I tried to switch to Pliant parser, because it's based on Earley instead of recursive descent, but their buggy library doesn't conform to standarts yet, so I stayed with Eto.Parse
cwensley: I know that existing semantics of "-" differs from what ISO standart defines, but it works for me
Jay Janarthanan
@jayonsoftware
i love fluent API, trying to create one for capturing string with escape character....for example "Hello World" is easy but looking for help on "Hello \""World\"" World"
Curtis Wensley
@cwensley
@jayonsoftware sorry for the late reply, but the StringParser supports quoted strings easily
there's no fluent api to use it directly yet, but one could be added. Otherwise just instantiate it and use it within your fluent definition
Judith
@Judith74340563_twitter
Gold has been a highly preferable investment tool because of the liquidity it offers. In comparison to other forms of investment like stocks and bonds, gold has proven to be an asset that is easy to liquidate and thus, in times of an emergency, it can easily act as an investment cushion. Equinox-gold has built a strong proponent, transparent and profitable swap or rather substitute system that establishes the highest standards of safety and security for clients funds. They're located in Canada. Equinox-gold imbue in gold mining, stocks and other relevant investment commodities like oil, milk, meat, metals etc. As long as deposit goes, they've multiple different deposits option. For what I understand, you can buy shares and which you can hold for a period of time and then withdrawal. This is a very different investing strategy—called buy-and-hold—involves keeping an investment over an extended period. After your deposit has been approved, it automatically starts to generate payouts. https://equinox-gold.org/?ref=Judith44