Beispiel #1
0
        public void Update(TokenPage page, CompilationEnvironment environment)
        {
            _flatStatements.Clear();

            Pattern pattern = MainPattern.Instance;

            foreach (PageLine line in page)
            {
                pattern.TryMatch(line,
                                 environment.Messages, out Expression expression);

                if (expression != null)
                {
                    _flatStatements.Add(expression);
                }
            }

            Root = TreeBuilder.Build(_flatStatements, environment);

            foreach (ITreeTransform transform in _transforms)
            {
                transform.Apply(Root, environment);
            }

            ParseTestCommands(page, environment.Messages);
        }
Beispiel #2
0
        private static void PrintPageInfo(TextWriter writer, TokenPage page, AModel model)
        {
            var name   = page.Name;
            var scores = model.GetScores(page);

            var maxScore = scores.Max(s => s.Score);
            var label    = scores.First(s => s.Score == maxScore).Type;

            writer.WriteLine($"{name};{label}");
        }
Beispiel #3
0
        public override List <TypeScore> GetScores(TokenPage page)
        {
            List <TypeScore> list = new List <TypeScore>();

            for (int index = 0; index < Labels.Count; index++)
            {
                list.Add(new TypeScore(Labels[index], CreateScore(_hashSets[index], page.Tokens)));
            }
            return(list);
        }
        public override List <TypeScore> GetScores(TokenPage page)
        {
            List <TypeScore> list = new List <TypeScore>();

            for (int index = 0; index < Labels.Count; index++)
            {
                list.Add(new TypeScore(Labels[index], CreateScore(_priors[index], _estimates[index], page.Map)));
            }

            return(list);
        }
Beispiel #5
0
 private void ParseTestCommands(TokenPage page, Messenger messages)
 {
     foreach (PageLine line in page)
     {
         foreach (Token token in line)
         {
             if (token.Type == TokenType.Comment && token.Content.StartsWith("#!"))
             {
                 TestCommand.ParseAndLinkToken(token, messages);
             }
         }
     }
 }
Beispiel #6
0
 public abstract List <TypeScore> GetScores(TokenPage page);
Beispiel #7
0
 public TokenPageExpectation(TokenPage page, string expectedCategory)
 {
     Page             = page;
     ExpectedCategory = expectedCategory;
 }
Beispiel #8
0
 public TokenSeeker(TokenPage page)
 {
     _page = page;
 }