Skip to content

Commit

Permalink
Make Parser class static
Browse files Browse the repository at this point in the history
  • Loading branch information
ratbeknurlanov committed Nov 28, 2018
1 parent 4a9d042 commit cf6d52a
Show file tree
Hide file tree
Showing 8 changed files with 36 additions and 43 deletions.
13 changes: 6 additions & 7 deletions cs/Markdown.Tests/ParserClassesTests/ParseBoldText_Should.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ namespace Markdown.Tests.ParserClassesTests
public class ParseBoldText_Should
{
private readonly Tokenizer tokenizer = new Tokenizer();
private readonly Parser parser = new Parser();

[Test]
public void Parse_TextSurroundedByDoubleUnderscores_Successfully()
Expand All @@ -23,7 +22,7 @@ public void Parse_TextSurroundedByDoubleUnderscores_Successfully()
expected.Add(new WordNode(WordType.SpacedWord, " chopped"));
expected.Add(new WordNode(WordType.SpacedWord, " liver?"));

parser.ParseBoldText(tokens)
Parser.ParseBoldText(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -43,7 +42,7 @@ public void Parse_EmphasisTextInside_Successfully()
expected.Add(new WordNode(WordType.SimpleWord, "</em>"));
expected.Add(new WordNode(WordType.SpacedWord, " shoulder"));

parser.ParseBoldText(tokens)
Parser.ParseBoldText(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -56,7 +55,7 @@ public void Parse_SingleDoubleUnderscore_AsText()
var expected = new TextNode();
expected.Add(new WordNode(WordType.SimpleWord, "__"));

parser.ParseBoldText(tokens)
Parser.ParseBoldText(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -70,7 +69,7 @@ public void Parse_IfAfterOpenDoubleUnderscoreFollowNonWhitespace_AsText()
expected.Add(new WordNode(WordType.SimpleWord, "__"));
expected.Add(new WordNode(WordType.SpacedWord, " warn"));

parser.ParseBoldText(tokens)
Parser.ParseBoldText(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -85,7 +84,7 @@ public void Parse_IfBeforeCloseUnderscoreNonWhitespace_AsText()
expected.Add(new WordNode(WordType.SimpleWord, "insert"));
expected.Add(new WordNode(WordType.Space, " "));

parser.ParseBoldText(tokens)
Parser.ParseBoldText(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -100,7 +99,7 @@ public void Parse_NotPairedUnderscores_AsText()
expected.Add(new WordNode(WordType.SimpleWord, "appeal"));
expected.Add(new WordNode(WordType.SimpleWord, "_"));

parser.ParseBoldText(tokens)
Parser.ParseBoldText(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand Down
13 changes: 6 additions & 7 deletions cs/Markdown.Tests/ParserClassesTests/ParseEmphasisText_Should.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ namespace Markdown.Tests.ParserClassesTests
public class ParseEmphasisText_Should
{
private readonly Tokenizer tokenizer = new Tokenizer();
private readonly Parser parser = new Parser();

[Test]
public void Parse_TextSurroundedByUnderscores_Successfully()
Expand All @@ -23,7 +22,7 @@ public void Parse_TextSurroundedByUnderscores_Successfully()
expected.Add(new WordNode(WordType.SpacedWord, " chopped"));
expected.Add(new WordNode(WordType.SpacedWord, " liver?"));

parser.ParseEmphasisText(tokens)
Parser.ParseEmphasisText(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -41,7 +40,7 @@ public void Parse_DoubleUnderscoresInside_AsText()
expected.Add(new WordNode(WordType.SimpleWord, "__"));
expected.Add(new WordNode(WordType.SpacedWord, " pie"));

parser.ParseEmphasisText(tokens)
Parser.ParseEmphasisText(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -54,7 +53,7 @@ public void Parse_SingleUnderscoreAsText()
var expected = new TextNode();
expected.Add(new WordNode(WordType.SimpleWord, "_"));

parser.ParseEmphasisText(tokens)
Parser.ParseEmphasisText(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -68,7 +67,7 @@ public void Parse_IfAfterOpenUnderscoreFollowNonWhitespace_AsText()
expected.Add(new WordNode(WordType.SimpleWord, "_"));
expected.Add(new WordNode(WordType.SpacedWord, " science"));

parser.ParseEmphasisText(tokens)
Parser.ParseEmphasisText(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -83,7 +82,7 @@ public void Parse_IfBeforeCloseUnderscoreNonWhitespace_AsText()
expected.Add(new WordNode(WordType.SimpleWord, "norm"));
expected.Add(new WordNode(WordType.Space, " "));

parser.ParseEmphasisText(tokens)
Parser.ParseEmphasisText(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -98,7 +97,7 @@ public void Parse_NotPairedUnderscores_AsText()
expected.Add(new WordNode(WordType.SimpleWord, "treatment"));
expected.Add(new WordNode(WordType.SimpleWord, "__"));

parser.ParseEmphasisText(tokens)
Parser.ParseEmphasisText(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand Down
13 changes: 6 additions & 7 deletions cs/Markdown.Tests/ParserClassesTests/ParseSentence_Should.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ namespace Markdown.Tests.ParserClassesTests
public class ParseSentence_Should
{
private readonly Tokenizer tokenizer = new Tokenizer();
private readonly Parser parser = new Parser();

[Test]
public void Parse_SimpleText_Successfully()
Expand All @@ -24,7 +23,7 @@ public void Parse_SimpleText_Successfully()
var expected = new SentenceNode();
expected.Add(textNode);

parser.ParseSentence(tokens)
Parser.ParseSentence(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -43,7 +42,7 @@ public void Parse_SingleTextStartingWithSpace_Successfully()
var expected = new SentenceNode();
expected.Add(textNode);

parser.ParseSentence(tokens)
Parser.ParseSentence(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -63,7 +62,7 @@ public void Parse_SingleTextEndingWithSpace_Successfully()
var expected = new SentenceNode();
expected.Add(textNode);

parser.ParseSentence(tokens)
Parser.ParseSentence(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -83,7 +82,7 @@ public void Parse_SingleTextStartingAndEndingWithSpace_Successfully()
var expected = new SentenceNode();
expected.Add(textNode);

parser.ParseSentence(tokens)
Parser.ParseSentence(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -109,7 +108,7 @@ public void Parse_TextAndEmphasis_Successfully()
expected.Add(textNode);
expected.Add(emphasisNode);

parser.ParseSentence(tokens)
Parser.ParseSentence(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand Down Expand Up @@ -137,7 +136,7 @@ public void Parse_TextEmphasisAndBold_Successfully()
expected.Add(textNode);
expected.Add(boldNode);

parser.ParseSentence(tokens)
Parser.ParseSentence(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ namespace Markdown.Tests.ParserClassesTests
public class ParseSimpleWord_Should
{
private readonly Tokenizer tokenizer = new Tokenizer();
private readonly Parser parser = new Parser();

[TestCase("0", "0", TestName = "0")]
[TestCase("1", "1", TestName = "1")]
Expand All @@ -26,7 +25,7 @@ public void Parse_NumberSimpleWord_Successfully(string text, string expectedValu
var tokens = tokenizer.Tokenize(text);
var expected = new WordNode(WordType.SimpleWord, expectedValue);

parser.ParseSimpleWord(tokens)
Parser.ParseSimpleWord(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -39,7 +38,7 @@ public void Parse_PlainTextSimpleWord_Successfully(string text, string expectedV
var tokens = tokenizer.Tokenize(text);
var expected = new WordNode(WordType.SimpleWord, expectedValue);

parser.ParseSimpleWord(tokens)
Parser.ParseSimpleWord(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ namespace Markdown.Tests.ParserClassesTests
public class ParseSpacedWord_Should
{
private readonly Tokenizer tokenizer = new Tokenizer();
private readonly Parser parser = new Parser();

[TestCase(" 0", " 0", TestName = " 0")]
[TestCase(" 1", " 1", TestName = " 1")]
Expand All @@ -26,7 +25,7 @@ public void Parse_NumberSpacedWord_Successfully(string text, string expectedValu
var tokens = tokenizer.Tokenize(text);
var expected = new WordNode(WordType.SpacedWord, expectedValue);

parser.ParseSpacedWord(tokens)
Parser.ParseSpacedWord(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -39,7 +38,7 @@ public void Parse_PlainTextSpacedWord_Successfully(string text, string expectedV
var tokens = tokenizer.Tokenize(text);
var expected = new WordNode(WordType.SpacedWord, expectedValue);

parser.ParseSpacedWord(tokens)
Parser.ParseSpacedWord(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -51,7 +50,7 @@ public void Parse_Space_Successfully()
var tokens = tokenizer.Tokenize(text);
var expected = new WordNode(WordType.Space, " ");

parser.ParseSpacedWord(tokens)
Parser.ParseSpacedWord(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand Down
9 changes: 4 additions & 5 deletions cs/Markdown.Tests/ParserClassesTests/ParseText_Should.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ namespace Markdown.Tests.ParserClassesTests
public class ParseText_Should
{
private readonly Tokenizer tokenizer = new Tokenizer();
private readonly Parser parser = new Parser();

[TestCase(" ", WordType.Space, " ", TestName = "space")]
[TestCase("5", WordType.SimpleWord, "5", TestName = "simple num")]
Expand All @@ -23,7 +22,7 @@ public void Parse_SingleWord_Successfully(string text, WordType type, string val
var expected = new TextNode();
expected.Add(new WordNode(type, value));

parser.ParseText(tokens)
Parser.ParseText(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -38,7 +37,7 @@ public void Parse_SpaceAndSpace_Successfully()
expected.Add(new WordNode(WordType.Space, " "));
expected.Add(new WordNode(WordType.Space, " "));

parser.ParseText(tokens)
Parser.ParseText(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -56,7 +55,7 @@ public void Parse_WordAndSpace_Successfully(string word, WordType wordType)
expected.Add(new WordNode(wordType, word));
expected.Add(new WordNode(WordType.Space, " "));

parser.ParseText(tokens)
Parser.ParseText(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand All @@ -81,7 +80,7 @@ public void Parse_TwoWords_Successfully(string text, WordType firstType, WordTyp
expected.Add(new WordNode(firstType, firstExpectedValue));
expected.Add(new WordNode(secondType, secondExpectedValue));

parser.ParseText(tokens)
Parser.ParseText(tokens)
.Should()
.BeEquivalentTo(expected);
}
Expand Down
3 changes: 1 addition & 2 deletions cs/Markdown/Md.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,10 @@ public static void Main(string[] args)
public static string Render(string markdownText)
{
var tokenizer = new Tokenizer();
var parser = new Parser();
var generator = new HTMLGenerator();

var tokens = tokenizer.Tokenize(markdownText);
var abstractSyntaxTree = parser.Parse(tokens);
var abstractSyntaxTree = Parser.Parse(tokens);
var htmlText = generator.Generate(abstractSyntaxTree);

return htmlText;
Expand Down
16 changes: 8 additions & 8 deletions cs/Markdown/ParserClasses/Parser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,16 @@

namespace Markdown.ParserClasses
{
public class Parser
public static class Parser
{
public SentenceNode Parse(Deque<Token> tokens)
public static SentenceNode Parse(Deque<Token> tokens)
{
var sentence = ParseSentence(tokens);

return sentence;
}

public SentenceNode ParseSentence(Deque<Token> tokens)
public static SentenceNode ParseSentence(Deque<Token> tokens)
{
var sentence = new SentenceNode();

Expand Down Expand Up @@ -48,7 +48,7 @@ public SentenceNode ParseSentence(Deque<Token> tokens)
return sentence;
}

public TextNode ParseBoldText(Deque<Token> tokens)
public static TextNode ParseBoldText(Deque<Token> tokens)
{
var doubleUnderscore = tokens.PopFirst();
if (tokens.Count == 0)
Expand Down Expand Up @@ -108,7 +108,7 @@ public TextNode ParseBoldText(Deque<Token> tokens)
}
}

public TextNode ParseEmphasisText(Deque<Token> tokens)
public static TextNode ParseEmphasisText(Deque<Token> tokens)
{
var underscore = tokens.PopFirst();
if (tokens.Count == 0)
Expand Down Expand Up @@ -158,7 +158,7 @@ public TextNode ParseEmphasisText(Deque<Token> tokens)
}
}

public TextNode ParseText(Deque<Token> tokens)
public static TextNode ParseText(Deque<Token> tokens)
{
var plainText = new TextNode();

Expand Down Expand Up @@ -187,14 +187,14 @@ public TextNode ParseText(Deque<Token> tokens)
return plainText;
}

public WordNode ParseSimpleWord(Deque<Token> tokens)
public static WordNode ParseSimpleWord(Deque<Token> tokens)
{
var simpleWord = tokens.PopFirst();

return new WordNode(WordType.SimpleWord, simpleWord.Value);
}

public WordNode ParseSpacedWord(Deque<Token> tokens)
public static WordNode ParseSpacedWord(Deque<Token> tokens)
{
var space = tokens.PopFirst();

Expand Down

0 comments on commit cf6d52a

Please sign in to comment.