예제 #1
0
        public override void ExportToCsv(string filename)
        {
            var output = new StreamWriter(filename);

            var orderedLookaheads = Lookaheads.OrderBy(l => l.Value);

            output.WriteLine("," + String.Join(",", orderedLookaheads.Select(l => l.Key)));

            for (var i = 0; i < Items.Count; ++i)
            {
                output.Write($"{i},");

                output.Write(String.Join(",",
                                         orderedLookaheads.Select(l => this[i, l.Key])
                                         .Select(alts => alts.Count == 0 ? "" : alts.Count == 1 ? alts.Single().ToString() : String.Join("/", alts))));

                output.WriteLine();
            }

            output.Close();
        }
예제 #2
0
        public override void ExportToCsv(string filename)
        {
            var output = new StreamWriter(filename);

            var orderedLookaheads = Lookaheads.OrderBy(l => l.Value);

            output.WriteLine("," + String.Join(",", orderedLookaheads.Select(l => l.Key)));

            foreach (var nt in NonterminalSymbols.Keys)
            {
                output.Write($"{nt},");

                output.Write(String.Join(",",
                                         orderedLookaheads.Select(l => this[nt, l.Key])
                                         .Select(alts => alts.Count == 0 ? "" : alts.Count == 1 ? alts.Single().ToString() : String.Join("/", alts))));

                output.WriteLine();
            }

            output.Close();
        }