Commit e4875df4 by Staf Verhaegen

Value of properties can be expression.

Example found in the 2007.03 Liberty Reference Manual that was also found
in the wild:

    input_voltage(CMOS) {
        vil : 0.3 * VDD ;
        vih : 0.7 * VDD ;
        vimin : -0.5 ;
        vimax : VDD + 0.5 ;
    }

Current implementation just parses the expression but no interpretation is done.
parent f3dcf87c
...@@ -399,6 +399,18 @@ int Scl_LibertyBuildItem( Scl_Tree_t * p, char ** ppPos, char * pEnd ) ...@@ -399,6 +399,18 @@ int Scl_LibertyBuildItem( Scl_Tree_t * p, char ** ppPos, char * pEnd )
if ( Scl_LibertySkipSpaces( p, ppPos, pEnd, 1 ) ) if ( Scl_LibertySkipSpaces( p, ppPos, pEnd, 1 ) )
goto exit; goto exit;
pNext = *ppPos; pNext = *ppPos;
while ( *pNext == '+' || *pNext == '-' || *pNext == '*' || *pNext == '/' )
{
(*ppPos) += 1;
if ( Scl_LibertySkipSpaces( p, ppPos, pEnd, 0 ) )
goto exit;
if ( Scl_LibertySkipEntry( ppPos, pEnd ) )
goto exit;
Head.End = *ppPos - p->pContents;
if ( Scl_LibertySkipSpaces( p, ppPos, pEnd, 1 ) )
goto exit;
pNext = *ppPos;
}
if ( *pNext != ';' && *pNext != '\n' ) if ( *pNext != ';' && *pNext != '\n' )
goto exit; goto exit;
*ppPos = pNext + 1; *ppPos = pNext + 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment