Walter: My concern about these two DLL calls: (xyz (1 2 3)) and (xyz (1 2 3) (4 5 6)) I do not see how these parenthesis fit into the BNF in section 10 without redefining the first element of each row as a parameter. | <tree>: | <branch> | | <branch>: | ( <branch name> <leaf list> ) | | <leaf list>: | <branch> | <leaf> | <leaf list> <branch> | <leaf list> <leaf> | | <leaf>: | ( <parameter name> whitespace <value list> ) | | <value list>: | <value> | <value list> whitespace <value> | <value>: | <string literals> | <decimal number> | <decimal number>e<exponent> | <decimal number>E<exponent> The BNF would have to be changed to add parenthesis grouping of values into row values for a defined <parameter name>. Bob From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Walter Katz Sent: Tuesday, April 05, 2011 3:05 AM To: IBIS-ATM Subject: [ibis-macro] A simple solution to Table All, A simple solution to Table. This is consistent with existing ami file and existing implementation. A Table is either followed by a list of tokens of (Type type) or a list of () delimited rows "() Rows". Each row will consist of a list of tokens of (Type type). (type is either Float Integer UI Boolean String). When a Table passed to or from the DLL because it is Usage In, Out or InOut, the data will either be passed as defined in the .ami file. If Table is followed by a list of tokens, then the value of the parameter in the AMI_parameters_ string will be a list of tokens. If Table is followed by a list of () Rows, then the value of the parameter in the AMI_parameters_ string will be a list of () Rows. Model_Specific Examples (All Type Integer, Usage In) In AMI File In call to the DLL ---------------------- ------------------- (xyz (Table (1 2 3)) (xyz (1 2 3)) (xyz (Table 1 2 3) (xyz 1 2 3) (xyz (Table (1 2 3)(4 5 6))) (xyz (1 2 3) (4 5 6)) (xyz (Table 1 2 3 4 5 6)) (xyz 1 2 3 4 5 6) (xyz (Table 1 2 3 4 5 6)) (xyz 1 2 3 4 5 6) If a Table consists of two or more () Rows, then each row shall contain the same number of tokens. If the first token in the first () Row is Labels, it is a Label Row. A Label Row is informational only and is not passed in or out of the DLL. The Label Row shall consist of a list of Strings. It should contain the same number of Strings as there are tokens in each () Rows. Reserved_Parameters Same rules, but reserved parameters have fixed interpretation conventions for columns that everyone understands. For example, Tx_Jitter and Rx_clock_PDF, have the same special rules: Type Float (all numbers are float, but can be recast as integers or float) 1. First column is to be a row number (actually it looks like a bin number) 2. Second column is a time value relative to a center value 3. Third column is value, from 0 to 1 and with the total of that column equal to 1. Type UI (all numbers are still float), but the reserved parameter documentation describes how to recast the number. 1. Second column is UI and same rules as above Walter Katz wkatz@xxxxxxxxxx Phone 303.449-2308 Mobile 720.333-1107