Exemple #1
0
        private static void _ListFunc(LuaProto p, ListFuncDelegate outputEvent)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();

            string s = (p.Source != null) ? p.Source : "=?";

            if (s[0] == '@' || s[0] == '=')
            {
                s = s.Substring(1);
            }
            else if ((int)s[0] == 27)
            {
                s = "(bstring)";
            }
            else
            {
                s = "(string)";
            }
            sb.Append(string.Format("{0} <{1}:{2},{3}> ({4} instructions)",
                                    p.LineDefined == 0 ? "main" : "function",
                                    s,
                                    p.LineDefined,
                                    p.LastLineDefined,
                                    p.Code.Count)).Append("\n");
            sb.Append(string.Format(
                          "{0}{1} params, {2} slots, {3} upvalue, {4} locals, {5} constants, {6} functions",
                          p.NumParams,
                          p.IsVarArg ? "+" : "",
                          p.MaxStackSize,
                          p.Upvalues.Count,
                          p.LocVars.Count,
                          p.K.Count,
                          p.P.Count)).Append("\n");
            for (int i = 0; i < p.Code.Count; ++i)
            {
                var ins  = p.Code[i];
                var line = p.LineInfo[i];
                sb.Append((i + 1).ToString()).Append("\t")
                .Append("[" + line + "]").Append("\t")
                .Append(ins.ToString()).Append("\t")
                .Append("; ").Append(line).Append("\n");
            }
            if (outputEvent != null)
            {
                outputEvent(sb.ToString());
            }

            //foreach( var child in p.P )
            for (int i = 0; i < p.P.Count; i++)
            {
                //_ListFunc( child, outputEvent );
                _ListFunc(p.P[i], outputEvent);
            }
        }
Exemple #2
0
        private static void _ListFunc( LuaProto p, ListFuncDelegate outputEvent )
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();

            string s = (p.Source != null) ? p.Source : "=?";
            if( s[0] == '@' || s[0] == '=' )
                s = s.Substring(1);
            else if( (int)s[0] == 27 )
                s = "(bstring)";
            else
                s = "(string)";
            sb.Append( string.Format("{0} <{1}:{2},{3}> ({4} instructions)",
                p.LineDefined==0 ? "main" : "function",
                s,
                p.LineDefined,
                p.LastLineDefined,
                p.Code.Count) ).Append("\n");
            sb.Append( string.Format(
                "{0}{1} params, {2} slots, {3} upvalue, {4} locals, {5} constants, {6} functions",
                p.NumParams,
                p.IsVarArg ? "+" : "",
                p.MaxStackSize,
                p.Upvalues.Count,
                p.LocVars.Count,
                p.K.Count,
                p.P.Count ) ).Append("\n");
            for( int i=0; i<p.Code.Count; ++i )
            {
                var ins = p.Code[i];
                var line = p.LineInfo[i];
                sb.Append( (i+1).ToString() ).Append( "\t" )
                  .Append( "["+line+"]" ).Append( "\t" )
                  .Append( ins.ToString() ).Append( "\t" )
                  .Append( "; " ).Append(line).Append("\n");
            }
            if( outputEvent != null )
                outputEvent( sb.ToString() );

            foreach( var child in p.P )
            {
                _ListFunc( child, outputEvent );
            }
        }