Пример #1
0
        private static string GetHelp(AbstractParser parser)
        {
            if (parser != null && parser.CurrentOptions != null) {
                return parser.CurrentOptions.Help();
            }

            return new DefaultOptions().Help();
        }
Пример #2
0
        public void ExistTable_TableExist_ReturnTrue()
        {
            AbstractParser xmlParser    = CreateXMLParser();
            Database       testDatabase = ObjectConstructor.CreateDatabaseFull("test2");

            xmlParser.SaveDatabase(testDatabase);
            IEnumerator <ITable> enumerator = testDatabase.GetTableEnumerator();

            if (enumerator.MoveNext())
            {
                Assert.IsTrue(xmlParser.ExistTable(testDatabase.databaseName, enumerator.Current.tableName));
            }
            else
            {
                Assert.Fail("there is no tables idiot!");
            }
        }
Пример #3
0
        public Page(PageConfig pc) : this(pc.Url)
        {
            Template      = TemplateFactory.GetInstance().GetExistingTemplate(pc.Template);
            Parser        = AbstractParser.NewInstance(Template.PageType);
            RefreshDelay  = pc.Refresh * 60; // convertir les minutes en secondes
            Enabled       = pc.Enabled;
            IsNewBehavior = pc.IsNewBehavior;

            if (string.IsNullOrEmpty(pc.Name) == false)
            {
                PageName = pc.Name;
            }
            else
            {
                PageName = Template.PageName;
            }
        }
Пример #4
0
        private static async Task <List <T> > GetObjectListAsync <T>(string dataUrl, AbstractParser <T> parser)
        {
            var request = (HttpWebRequest)WebRequest.Create(dataUrl);

            request.Method = "GET";

            var response = await Task.Factory.FromAsync((callback, stateObject) => request.BeginGetResponse(callback, request), request.EndGetResponse, null);

            using (var reader = new System.IO.StreamReader(response.GetResponseStream())) {
                string responseText = reader.ReadToEnd();

                var lines = responseText.Split(new string[] { System.Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList();

                var objectList = parser.Parse(lines);
                return(objectList);
            }
        }
Пример #5
0
        /// <summary>
        /// Caches the read.
        /// </summary>
        /// <param name="s">The s.</param>
        /// <param name="asDictionaryKey">if set to <c>true</c> [as dictionary key].</param>
        /// <param name="p">The p.</param>
        /// <returns></returns>
        public object CacheRead(string s, bool asDictionaryKey, AbstractParser p)
        {
            if (s.Length != 0)
            {
                if (CacheCode(s))
                {
                    return cache[CodeToIndex(s)];
                }
                else if (WriteCache.IsCacheable(s, asDictionaryKey))
                {
                    if (index == WriteCache.MaxCacheEntries)
                    {
                        Init();
                    }
                    return cache[index++] = (p != null ? p.ParseString(s) : s);
                }
            }

            return p != null ? p.ParseString(s) : s;
        }
Пример #6
0
        /// <summary>
        /// Caches the read.
        /// </summary>
        /// <param name="s">The s.</param>
        /// <param name="asDictionaryKey">if set to <c>true</c> [as dictionary key].</param>
        /// <param name="p">The p.</param>
        /// <returns></returns>
        public object CacheRead(string s, bool asDictionaryKey, AbstractParser p)
        {
            if (s.Length != 0)
            {
                if (CacheCode(s))
                {
                    return(cache[CodeToIndex(s)]);
                }
                else if (WriteCache.IsCacheable(s, asDictionaryKey))
                {
                    if (index == WriteCache.MaxCacheEntries)
                    {
                        Init();
                    }
                    return(cache[index++] = (p != null ? p.ParseString(s) : s));
                }
            }

            return(p != null?p.ParseString(s) : s);
        }
Пример #7
0
            public void Start(OperationContext context)
            {
                HasStarted = true;

                var task = runAsync();

                Analysis.IgnoreArgument(task);

                async Task runAsync()
                {
                    try
                    {
                        IsRunningService = true;

                        foreach (var envVar in StartInfo.Environment)
                        {
                            Environment.SetEnvironmentVariable(envVar.Key, envVar.Value);
                        }

                        var args     = AbstractParser.CommonSplitArgs(StartInfo.Arguments);
                        var exitCode = StartInfo.FileName.EndsWith("DepSvc.exe", StringComparison.OrdinalIgnoreCase)
                            ? await RunDeploymentProxyWithCacheServiceAsync(args)
                            : await RunCacheServiceAsync(args);

                        Exit(exitCode);
                    }
                    catch (Exception ex)
                    {
                        Exit(-2);
                        Analysis.IgnoreArgument(ex);
                    }
                    finally
                    {
                        IsRunningService = false;
                    }
                }
            }
 public object Representation(object obj)
 {
     return(AbstractParser.FormatDateTime((DateTime)obj));
 }
Пример #9
0
        private static Boolean ValidateScenario(string scenarioFile)
        {
            Regex schemaFileRegex = new Regex("SchemaLocation=\"(.*?)\"");

            // First, find the schema file name in the scenario file;
            //string dddClientDir = String.Format("\\\\{0}\\DDDClient", System.Environment.MachineName) + "\\";
            string dddClientDir = "\\\\" + ServerOptions.DDDClientPath + "\\";// Path.GetDirectoryName(ServerOptions.ScenarioSchemaPath) + "\\";

            //string dddClientDir = ServerOptions.ScenarioSchemaPath + "\\";
            namedSchemaFile = "DDDSchema_4_0.xsd";//default setting
            string oneLine;

            try
            {
                StreamReader scenarioReader = new StreamReader(scenarioFile);
                while ((oneLine = scenarioReader.ReadLine()) != null)
                {
                    if (schemaFileRegex.IsMatch(oneLine))
                    {
                        Match m = schemaFileRegex.Match(oneLine);

                        namedSchemaFile = m.Groups[1].Value;
                        if (".xsd" != namedSchemaFile.Substring(namedSchemaFile.Length - 4).ToLower())
                        {
                            namedSchemaFile += ".xsd";
                        }
                        switch (namedSchemaFile)
                        {                              //
                        case "DDDSchema_4_0.xsd":
                            parser = new Parser_4_0(); //DDD SP1
                            break;

                        case "DDDSchema_4_0_2.xsd":
                            parser = new Parser_4_0_2();    //DDD 4.0 SP2
                            break;

                        case "DDDSchema_4_1.xsd":
                            parser = new Parser_4_1();
                            break;

                        case "DDDSchema_4_1_1.xsd":
                            parser = new Parser_4_1();
                            break;

                        case "DDDSchema_4_2.xsd":
                            parser = new Parser_4_2();
                            break;

                        default:
                            System.Windows.Forms.MessageBox.Show("Unknown Schema File: " + namedSchemaFile);
                            throw new ApplicationException("Unknown schema file: " + namedSchemaFile);
                        }
                        scenarioReader.Close();
                        break;
                    }
                }
            }
            catch (SystemException e)// only occurs for i/o errors, not for unfound schema name
            {
                System.Windows.Forms.MessageBox.Show("Error reading scenario file " + scenarioFile + ": " + e.Message);

                throw new ApplicationException("Error reading scenario file " + scenarioFile, e);
            }

/*
 * at this point
 * Have found the schema file (or there was none)
 * Have used schema file to choose appropriate parser
 */
            namedSchemaFile = dddClientDir + namedSchemaFile;
            Boolean returnValue = true;
            // Create the XmlNodeReader object.
            XmlDocument doc = new XmlDocument();

            doc.Load(scenarioFile);
            XmlNodeReader nodeReader = new XmlNodeReader(doc);

            // Set the validation settings.
            XmlReaderSettings settings = new XmlReaderSettings();

            settings.ValidationType = ValidationType.Schema;
            settings.Schemas.Add(null, namedSchemaFile);//+".xsd");
            settings.ValidationEventHandler += new ValidationEventHandler(SchemaValidationHandler);
            settings.ValidationFlags        |= XmlSchemaValidationFlags.ReportValidationWarnings;
            // Create a validating reader that wraps the XmlNodeReader object.
            XmlReader reader = XmlReader.Create(nodeReader, settings);

            parser.SetReader(reader);
            // Parse the XML file.
            try
            {
                while (reader.Read())
                {
                    ;
                }
            }
            catch (SystemException e)
            {
                returnValue = false;
                System.Windows.Forms.MessageBox.Show("Error in XML Validation:\n"
                                                     + " Scenario File: " + scenarioFile + "\n"
                                                     + "Schema File : " + namedSchemaFile + "\n"
                                                     + e.Message);
            }
            finally
            {
                nodeReader.Close();
                reader.Close();
            }
            return(returnValue);
        }
Пример #10
0
        public void SplitArgsTests(string input, string[] expectedArgs)
        {
            var actualArgs = AbstractParser.CommonSplitArgs(input);

            Assert.Equal(expectedArgs, actualArgs);
        }
Пример #11
0
//        public LoadService()
//        {
////            this.textureFactory = textureFactory;
////            this.colorFactory = colorFactory;
//        }

        public void ParseFiles(Dictionary <string, byte[]> files, IEngine engine, SaveFlags saveFlags)
        {
            Reset();

            var watch = Stopwatch.StartNew();

            // Save the engine so we can work with it during loading
            targetEngine = engine;

            // Step 1. Load the system snapshot
            if ((saveFlags & SaveFlags.System) == SaveFlags.System)
            {
                LoadSystem(files);
            }

            // Step 2 (optional). Load up the Lua script
            if ((saveFlags & SaveFlags.Code) == SaveFlags.Code)
            {
                //var scriptExtension = ".lua";

                var paths = files.Keys.Where(s => textExtensions.Any(x => s.EndsWith(x))).ToList();

                foreach (var fileName in paths)
                {
                    parser = LoadScript(fileName, files[fileName]);
                    AddParser(parser);
                }
            }

            // Step 3 (optional). Look for new colors
            if ((saveFlags & SaveFlags.Colors) == SaveFlags.Colors)
            {
//                parser = LoadSystemColors(files);
//                if (parser != null)
//                    AddParser(parser);

                // Add the color parser
                parser = LoadColors(files);
                if (parser != null)
                {
                    AddParser(parser);
                }
            }

            // Step 4 (optional). Look for color map for sprites and tile map
            if ((saveFlags & SaveFlags.ColorMap) == SaveFlags.ColorMap)
            {
                // TODO this is a legacy parcer and should be depricated
                parser = LoadColorMap(files);
                if (parser != null)
                {
                    AddParser(parser);
                }

//                // This will be the new parser moving forward
//                parser = LoadColorPalette(files);
//                if(parser != null)
//                    AddParser(parser);

                // TODO need to rename SaveFlags.ColorMap to SaveFlags.ColorPalette
            }

            // Step 5 (optional). Look for new sprites
            if ((saveFlags & SaveFlags.Sprites) == SaveFlags.Sprites)
            {
                parser = LoadSprites(files);
                if (parser != null)
                {
                    AddParser(parser);
                }
            }


            // Step 6 (optional). Look for tile map to load
            if ((saveFlags & SaveFlags.FlagColors) == SaveFlags.FlagColors)
            {
                LoadFlagColors(files);
            }

            // Step 6 (optional). Look for tile map to load
            if ((saveFlags & SaveFlags.Tilemap) == SaveFlags.Tilemap)
            {
                LoadTilemap(files);
            }

            // Step 7 (optional). Look for fonts to load
            if ((saveFlags & SaveFlags.Fonts) == SaveFlags.Fonts)
            {
                var fontExtension = ".font.png";

                var paths = files.Keys.Where(s => s.EndsWith(fontExtension)).ToArray();

                foreach (var fileName in paths)
                {
                    var fontName = fileName.Split('.')[0];

                    parser = LoadFont(fontName, files[fileName]);
                    if (parser != null)
                    {
                        AddParser(parser);
                    }
                }
            }

            // Step 8 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.Meta) == SaveFlags.Meta)
            {
                parser = LoadMetaData(files);
                if (parser != null)
                {
                    AddParser(parser);
                }
            }

            // Step 9 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.Sounds) == SaveFlags.Sounds)
            {
                LoadSounds(files);
//                if (parser != null)
//                    AddParser(parser);
            }

            // Step 10 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.Music) == SaveFlags.Music)
            {
                LoadMusic(files);
//                if (parser != null)
//                    AddParser(parser);
            }

            // Step 11 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.SaveData) == SaveFlags.SaveData)
            {
                LoadSaveData(files);
//                if (parser != null)
//                    AddParser(parser);
            }



            totalParsers    = parsers.Count;
            currentParserID = 0;

            watch.Stop();

//            UnityEngine.Debug.Log("Parser Setup Time - " + watch.ElapsedMilliseconds);
        }
Пример #12
0
 private void Run(AbstractParser parser) => parser.Parse();
Пример #13
0
        private void ParserThreadCallback()
        {
            while (!_tokenSource.Token.IsCancellationRequested)
            {
                //Check if the MRE has been set
                if (!_mre.WaitOne(100))
                {
                    continue;
                }

                if (!_queue.TryDequeue(out QueueData data))
                {
                    _mre.Reset();
                    continue;
                }

                //The vertical bar is a pipe character. inputA | inputB = run command B with the output of command A
                string[] inputs = data.Input.Split('|');

                if (inputs.Length > 1)
                {
                    //If we have a piped command, send it off to a new thread to be handled,
                    //As each command needs to be handled in order
                    Thread pipeThread = new Thread(() => PipeThreadCallback(inputs, data.Callback, data.Context));
                    pipeThread.Start();
                    _mre.Set();
                    continue;
                }

                string input = data.Input; //We don't lower the data because case sensitivity is an option for command matching

                CommandMetadata metadata;
                lock (_lock)
                {
                    //Lock the metadata collection, and grab the first metadata that has a matching executor
                    List <CommandMetadata> metadatas = _metadata.Where(m => m.GetFirstOrDefaultExecutorData(input) != null).ToList();
                    metadata = metadatas.FirstOrDefault();
                }

                if (metadata == null)
                {
                    data.Callback?.Invoke(InputResult.Unhandled, null);

                    //No command matches, so ignore this input
                    _mre.Set();
                    continue;
                }

                CommandExecutorData exeData = metadata.GetFirstOrDefaultExecutorData(input);

                RegexString trigger = exeData.ExecutorAttribute.CommandMatcher;
                input = trigger.RemoveMatchedString(input).TrimStart();

                AbstractParser parser = _registry.GetParser(_registry, input, null, metadata, exeData, data.Context, data.Callback);

                try
                {
                    parser.Start();
                }
                finally
                {
                    //Our job is done, so prepare for the next input
                    _mre.Set();
                }
            }

            _mre.Dispose();
        }
Пример #14
0
 public void SetUp()
 {
     _parser = new Parser();
 }
Пример #15
0
        public virtual void ParseFiles(string[] files, IEngine engine, SaveFlags saveFlags)
        {
            Reset();

            // Save the engine so we can work with it during loading
            targetEngine = engine;

            // Step 1. Load the system snapshot
            if ((saveFlags & SaveFlags.System) == SaveFlags.System)
            {
                LoadSystem(files);
            }


            // Step 3 (optional). Look for new colors
            if ((saveFlags & SaveFlags.Colors) == SaveFlags.Colors)
            {
                // Add the color parser
                parser = LoadColors(files);
                if (parser != null)
                {
                    AddParser(parser);
                }
            }

            // Step 4 (optional). Look for color map for sprites and tile map
            if ((saveFlags & SaveFlags.ColorMap) == SaveFlags.ColorMap)
            {
                // TODO this is a legacy parcer and should be depricated
                parser = LoadColorMap(files);
                if (parser != null)
                {
                    AddParser(parser);
                }
            }

            // Step 5 (optional). Look for new sprites
            if ((saveFlags & SaveFlags.Sprites) == SaveFlags.Sprites)
            {
                parser = LoadSprites(files);
                if (parser != null)
                {
                    AddParser(parser);
                }
            }

            // Step 6 (optional). Look for tile map to load
            if ((saveFlags & SaveFlags.Tilemap) == SaveFlags.Tilemap)
            {
                LoadTilemap(files);
            }

            // Step 7 (optional). Look for fonts to load
            if ((saveFlags & SaveFlags.Fonts) == SaveFlags.Fonts)
            {
                var paths = files.Where(s => s.EndsWith(".font.png")).ToArray();

                foreach (var fileName in paths)
                {
                    // var fontName = GetFileName(fileName).Split('.').First();

                    var imageParser = new PNGFileReader(fileName, _fileLoadHelper, targetEngine.ColorChip.maskColor);

                    AddParser(new FontParser(imageParser, targetEngine.ColorChip, targetEngine.FontChip));

                    // parser = LoadFont(fontName, ReadAllBytes(fileName));
                    // if (parser != null)
                    //     AddParser(parser);
                }
            }

            // Step 8 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.Meta) == SaveFlags.Meta)
            {
                parser = LoadMetaData(files);
                if (parser != null)
                {
                    AddParser(parser);
                }
            }

            // Step 9 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.Sounds) == SaveFlags.Sounds)
            {
                LoadSounds(files);

                // Get all of the wav files
                var wavFiles = files.Where(x => x.EndsWith(".wav")).ToArray();

                if (wavFiles.Length > 0)
                {
                    AddParser(new WavParser(wavFiles, _fileLoadHelper, targetEngine));
                }
            }

            // Step 10 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.Music) == SaveFlags.Music)
            {
                LoadMusic(files);
            }

            // Step 11 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.SaveData) == SaveFlags.SaveData)
            {
                LoadSaveData(files);
            }

            // Step 12 (optional). Look for meta sprites
            if ((saveFlags & SaveFlags.MetaSprites) == SaveFlags.MetaSprites)
            {
                LoadMetaSprites(files);
            }

            ParseExtraFileTypes(files, engine, saveFlags);
        }
Пример #16
0
 private void PageTypeSelector_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     Workflow.PageTemplate.PageType = (string)PageTypeSelector.SelectedItem;
     Parser = AbstractParser.NewInstance(Workflow.PageTemplate.PageType);
 }
Пример #17
0
 public ConnectionString(String origin)
 {
     _parser = new ParsersCascade(origin, Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Process));
 }
Пример #18
0
 public LoginDialog()
 {
     this.InitializeComponent();
     isLoginSuccessed = false;
     parser           = new AbstractParser();
 }