Recurity.Swf.AVM1.ActionDefineFunction2.ParseFrom C# (CSharp) Method

ParseFrom() protected method

Parses the action from a string array
protected ParseFrom ( ) : bool
return bool
        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;
        }