public void ScanComplexFile() { using(Stream resourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("octalforty.Wizardby.Tests.Resources.Waffle.mdl")) { IMdlScanner mdlScanner = new MdlScanner(new SourceReader(new StreamReader(resourceStream, Encoding.UTF8))); mdlScanner.RegisterKeyword("migration"); mdlScanner.RegisterKeyword("default"); mdlScanner.RegisterKeyword("create"); mdlScanner.RegisterKeyword("table"); TokenSequence tokens = mdlScanner.Scan(); Assert.Greater(tokens.Count, 0); } // using }
public IDeploymentInfo ParseDeploymentInfo(StreamReader streamReader) { MdlScanner scanner = new MdlScanner(new SourceReader(streamReader)); scanner.RegisterKeyword("deployment"); scanner.RegisterKeyword("environment"); IMdlParser mdlParser = new MdlParser(scanner); IDeploymentNode deploymentNode = (IDeploymentNode)mdlParser.Parse(); EnvironmentCollection environments = new EnvironmentCollection(); foreach(IEnvironmentNode environmentNode in deploymentNode.ChildNodes) { environments.Add(ParseEnvironment(environmentNode)); } // foreach return new DeploymentInfo(environments); }
public void ScanKeywords() { IMdlScanner mdlScanner = new MdlScanner(new SourceReader(new StringReader("migration \"Waffle\" revision => 1 default create table"))); mdlScanner.RegisterKeyword("migration"); mdlScanner.RegisterKeyword("default"); mdlScanner.RegisterKeyword("create"); mdlScanner.RegisterKeyword("table"); TokenSequence tokens = mdlScanner.Scan(); Assert.AreEqual(9, tokens.Count); Assert.AreEqual(new Token(TokenType.Keyword, "migration", null), tokens.RemoveFirst()); Assert.AreEqual(new Token(TokenType.StringConstant, "Waffle", null), tokens.RemoveFirst()); Assert.AreEqual(new Token(TokenType.Symbol, "revision", null), tokens.RemoveFirst()); Assert.AreEqual(new Token(TokenType.PropertyAssignment, "=>", null), tokens.RemoveFirst()); Assert.AreEqual(new Token(TokenType.IntegerConstant, "1", null), tokens.RemoveFirst()); Assert.AreEqual(new Token(TokenType.Keyword, "default", null), tokens.RemoveFirst()); Assert.AreEqual(new Token(TokenType.Keyword, "create", null), tokens.RemoveFirst()); Assert.AreEqual(new Token(TokenType.Keyword, "table", null), tokens.RemoveFirst()); Assert.AreEqual(new Token(TokenType.EndStatement, null), tokens.RemoveFirst()); Assert.AreEqual(0, tokens.Count); }
public static IMdlScanner CreateScanner(TextReader textReader) { IMdlScanner mdlScanner = new MdlScanner(new SourceReader(textReader)); mdlScanner.RegisterKeyword("migration"); mdlScanner.RegisterKeyword("deployment"); mdlScanner.RegisterKeyword("type-aliases"); mdlScanner.RegisterKeyword("type-alias"); mdlScanner.RegisterKeyword("environment"); mdlScanner.RegisterKeyword("defaults"); mdlScanner.RegisterKeyword("default-primary-key"); mdlScanner.RegisterKeyword("baseline"); mdlScanner.RegisterKeyword("version"); mdlScanner.RegisterKeyword("add"); mdlScanner.RegisterKeyword("remove"); mdlScanner.RegisterKeyword("table"); mdlScanner.RegisterKeyword("column"); mdlScanner.RegisterKeyword("index"); mdlScanner.RegisterKeyword("reference"); mdlScanner.RegisterKeyword("alter"); mdlScanner.RegisterKeyword("templates"); mdlScanner.RegisterKeyword("template"); mdlScanner.RegisterKeyword("refactor"); mdlScanner.RegisterKeyword("constraint"); mdlScanner.RegisterKeyword("execute"); mdlScanner.RegisterKeyword("native-sql"); mdlScanner.RegisterKeyword("schema"); mdlScanner.RegisterKeyword(MdlSyntax.IncludeTemplate); return mdlScanner; }
public void RegisterKeywordThrowsArgumentExceptionOnEmptyKeyword() { IMdlScanner mdlScanner = new MdlScanner(new SourceReader(new StringReader("migration \"Waffle\" revision => 1 default create table"))); mdlScanner.RegisterKeyword(""); }