Hi, There are some old UNIX tools called LEX and YACC that automate parser creation with BNF-like specs. There's a tutorial example in "The UNIX Programming Environment" by Kernighan and Pike. hth -- Colin -----Original Message----- From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Todd Westerhoff Sent: Wednesday, February 24, 2010 12:37 PM To: Bob Ross Cc: ibis-macro@xxxxxxxxxxxxx Subject: [ibis-macro] Re: (Backus-Naur Form (BNF) of .ami file vs BNF of string in Parameters_In and Parameters_Out Bob, Really good question. I know there are a number of different definitions of 'BNF', but was expecting that we could pick one as a reference, preferably one that has good software tools to go with it. I'm hoping to avoid defining our own interpretation of BNF, as the task of 'defining a language' is how we got here in the first place ... ... and that's the point where my computer science fails me. It does like we need a syntax that includes both OR and XOR, as I expect that we'll need to describe both. Walter & I can do some research on BNF alternatives & tools, but not until some time next week. Do you agree we should try to find a BNF reference can all work from? Todd. Todd Westerhoff VP, Software Products SiSoft 6 Clock Tower Place, Suite 250 Maynard, MA 01754 (978) 461-0449 x24 twesterh@xxxxxxxxxx www.sisoft.com On 2/24/2010 11:54 AM, Bob Ross wrote: > Todd and Walter: > > Thanks, these formal descriptions are helpful starts and also provide > a cross-check and basis for detailed questions. > > I am not aware of any BNF standard since I have seen many different > styles. > > I assume that "|" is exclusive OR since 'True False' is a violation. > > GetWave_Exists (Value True|False)|(Default True|False) > > Is Default AND Value a violation? > > Bob > > > > Todd Westerhoff wrote: >> Walter, >> >> I think you're on to something here. >> >> The main issue I keep hearing is that we have trouble spec'ing the >> .AMI file syntax for parser development, whether it be the IBIS >> parser or EDA vendor tools. Having a formal definition of the .AMI >> syntax in BNF is a great idea and, as far as I'm concerned, directly >> addresses many of the problems we've had. >> >> I took a shot at cleaning up the syntax you'd defined - fixed a few >> of the typos and added whitespace for readability. I know the >> computers don't care, but I think whitespace can make it easier for >> us humans to review and discuss. >> >> I think the reserved parameter stuff is reasonably clean, but I >> suspect the model-specific parameter definitions still need work I'm >> familiar with BNF in concept but am most certainly not an expert. If >> others agree this is the way to go, let's enlist the help of someone >> with more BNF experience and get this sorted out. >> >> Todd. >> >> Todd Westerhoff >> VP, Software Products >> SiSoft >> 6 Clock Tower Place, Suite 250 >> Maynard, MA 01754 >> (978) 461-0449 x24 >> twesterh@xxxxxxxxxx >> www.sisoft.com >> >> >> On 2/24/2010 8:35 AM, Walter Katz wrote: >> >>> All, >>> >>> >>> >>> The parameter tree was initially used for the content of the strings >>> in Parameters_In and Parameters_Out. The modified BNF in the IBIS >>> 5.0 AMI specification is an accurate representation and therefore an >>> accurate method to parse the strings in Parameters_In and >>> Parameters_Out. >>> >>> >>> >>> The .ami file is also in a parameter tree format, but has additional >>> rules. I do not know how to capture these additional rules in a >>> formal BNF that can be used to programmatically parse a .ami file. I >>> did put the following document together than may very well be >>> misnames a BNF, but I do think graphically documents the parser >>> rules for the update .ami syntax. >>> >>> >>> >>> This follows up on the ideas that Bob suggested in his e-mail to the >>> group on AMI Quick Reference. >>> >>> >>> >>> I think it is useful as is, any suggestions on how to make it more >>> readable, or BNF like would be much appreciated. >>> >>> >>> >>> Walter >>> >>> >>> >>> Walter Katz >>> >>> 303.449-2308 >>> >>> Mobile 720.333-1107 >>> >>> wkatz@xxxxxxxxxx >>> >>> www.sisoft.com >>> >>> >>> > > --------------------------------------------------------------------- IBIS Macro website : http://www.eda.org/pub/ibis/macromodel_wip/ IBIS Macro reflector: //www.freelists.org/list/ibis-macro To unsubscribe send an email: To: ibis-macro-request@xxxxxxxxxxxxx Subject: unsubscribe --------------------------------------------------------------------- IBIS Macro website : http://www.eda.org/pub/ibis/macromodel_wip/ IBIS Macro reflector: //www.freelists.org/list/ibis-macro To unsubscribe send an email: To: ibis-macro-request@xxxxxxxxxxxxx Subject: unsubscribe