protected override bool ParseFrom( params string[] token )
{
if ( token.Length < 2 )
return false;
_functionName = token[ 0 ];
_codeSize = UInt16.Parse( token[ 1 ] );
_Parameters = new List<RegisterParam>();
for ( int i = 2; i < token.Length; i++ )
{
//
// Parameter register preload
//
if ( token[ i ].Contains( "->" ) )
{
string param = token[ i ].Substring( 0, token[ i ].IndexOf( "->" ) );
string reg = token[ i ].Substring( token[ i ].LastIndexOf( "->" ) + 1 );
byte regNum = Byte.Parse( reg );
RegisterParam p = new RegisterParam();
p.ParamName = param;
p.Register = regNum;
_Parameters.Add( p );
}
else if ( token[ i ].Equals( "PreloadParent", StringComparison.InvariantCulture ) )
{
_PreloadParentFlag = true;
}
else if ( token[ i ].Equals( "PreloadRoot", StringComparison.InvariantCulture ) )
{
_PreloadRootFlag = true;
}
else if ( token[ i ].Equals( "SuppressSuper", StringComparison.InvariantCulture ) )
{
_SuppressSuperFlag = true;
}
else if ( token[ i ].Equals( "PreloadSuper", StringComparison.InvariantCulture ) )
{
_PreloadSuperFlag = true;
}
else if ( token[ i ].Equals( "SuppressArguments", StringComparison.InvariantCulture ) )
{
_SuppressArgumentsFlag = true;
}
else if ( token[ i ].Equals( "PreloadArguments", StringComparison.InvariantCulture ) )
{
_PreloadArgumentsFlag = true;
}
else if ( token[ i ].Equals( "SuppressThis", StringComparison.InvariantCulture ) )
{
_SuppressThisFlag = true;
}
else if ( token[ i ].Equals( "PreloadThis", StringComparison.InvariantCulture ) )
{
_PreloadThisFlag = true;
}
else if ( token[ i ].Equals( "PreloadGlobal", StringComparison.InvariantCulture ) )
{
_PreloadGlobalFlag = true;
}
else
{
// unknown option
return false;
}
}
return true;
}