/*
 * Attribute grammar for binary numbers, similar to Knuth Example 1.3 (page
 * 129) and Tennent Table 13.1 (page 212).
 *
 * Attributes:
 *
 *      NAME    DESCRIPTION
 *      ===================================================================
 *      v       real-number value of a binary numeral.
 *
 * Rules:
 */
%%

N       : I '.' F       {$$.v = $1.v + $3.v};
I       : I B           {$$.v = 2 * $1.v + $2.v};
I       : B             {$$.v = $1.v};
F       : B F           {$$.v = ($1.v + $2.v / 2};
F       : B             {$$.v = $1.v / 2};
B       : '1'           {$$.v = 1};
B       : '0'           {$$.v = 0};