Example #1
0
            private List <string> ParseModuleForOptions(List <string> ctx, ref int idx, InteractiveState state)
            {
                if (idx >= ctx.Count)
                {
                    // end of the parse, return all loaded modules
                    return(new List <string>(state.m.m.al.LoadedAssemblies));
                }

                // else, make the new module our current scope
                var mod_list = new List <string>(state.m.m.al.LoadedAssemblies);
                var new_mod  = ctx[idx++];

                if (mod_list.Contains(new_mod))
                {
                    var new_m = new InteractiveMetadataStream {
                        m = state.m.m.al.GetAssembly(new_mod)
                    };
                    state.m = new_m;
                }

                if (idx++ >= ctx.Count)
                {
                    // must terminate a module with closing bracket
                    return(new List <string> {
                        "]"
                    });
                }

                return(ParseTypeForOptions(ctx, ref idx, state));
            }
Example #2
0
 internal Interactive(metadata.MetadataStream metadata, libtysila5.target.Target target)
 {
     s.m = new InteractiveMetadataStream {
         m = metadata
     };
     t      = target;
     corlib = new InteractiveMetadataStream {
         m = metadata.al.GetAssembly("mscorlib")
     };
 }