Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text;
- namespace ContainsWord
- {
- class Program
- {
- static void Main(string[] args)
- {
- var result = new List<bool?[]>();
- var grammars = new List<Grammar>();
- var words = new List<string[]>();
- using (var reader = new StreamReader("in.txt"))
- {
- while(!reader.EndOfStream)
- {
- var input = new string[5];
- for (var i = 0; i < 5; i++)
- if (i != 4)
- input[i] = reader.ReadLine();
- else
- words.Add(reader.ReadLine().Split(','));
- grammars.Add(new Grammar(input[0], input[1], input[2], input[3]));
- }
- }
- for (var i = 0; i < grammars.Count; i++)
- {
- var grammar = grammars[i];
- var ws = words[i];
- var bools = new bool?[ws.Length];
- for (var j = 0; j < ws.Length; j++)
- {
- var word = ws[j];
- var set = new List<string>();
- set.Add(grammar.StartSymbol);
- for (var k = 0; k < set.Count && bools[j] != true; k++)
- {
- var form = set[k];
- foreach (var rule in grammar.Rules)
- {
- rule.Use(form, set, word);
- if (set.Contains(word))
- {
- bools[j] = true;
- }
- }
- }
- if (bools[j] != true)
- {
- bools[j] = false;
- }
- }
- result.Add(bools);
- }
- using (var writer = new StreamWriter("out.txt"))
- {
- foreach (var bools in result)
- {
- foreach (var b in bools)
- {
- writer.Write(b.ToString() + ";");
- }
- writer.WriteLine();
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement