[ibis-macro] Re: (Backus-Naur Form (BNF) of .ami file vs BNF of string in Parameters_In and Parameters_Out

  • From: <colin_warwick@xxxxxxxxxxx>
  • To: <twesterh@xxxxxxxxxx>, <bob@xxxxxxxxxxxxx>
  • Date: Thu, 25 Feb 2010 09:03:08 -0700

There's an open source of GNU Bison, upward compatible with on YACC, at:

http://www.gnu.org/software/bison/

There's an Open source version of lex called flex (fast lex) at:

http://flex.sourceforge.net/ 

-----Original Message-----
From: WARWICK,COLIN (A-Americas,ex1) 
Sent: Wednesday, February 24, 2010 11:15 PM
To: 'twesterh@xxxxxxxxxx'; Bob Ross
Cc: ibis-macro@xxxxxxxxxxxxx
Subject: RE: [ibis-macro] Re: (Backus-Naur Form (BNF) of .ami file vs BNF of 
string in Parameters_In and Parameters_Out

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

Other related posts: