private void ParseNode(HamlNode node, HamlFile hamlFile) { //node.IsMultiLine = true; while ((!hamlFile.EndOfFile) && (hamlFile.CurrentLine.IndentCount > node.IndentCount)) { var nodeLine = hamlFile.CurrentLine; var childNode = HamlNodeFactory.GetHamlNode(nodeLine); node.AddChild(childNode); hamlFile.MoveNext(); if (hamlFile.EndOfFile == false && hamlFile.CurrentLine.IndentCount > nodeLine.IndentCount) { if (hamlFile.CurrentLine.IsInline == false) { childNode.AppendInnerTagNewLine(); } ParseNode(childNode, hamlFile); } if (hamlFile.EndOfFile == false && hamlFile.CurrentLine.IndentCount >= nodeLine.IndentCount) { node.AppendPostTagNewLine(childNode, hamlFile.CurrentLine.SourceFileLineNo); } } }
public HamlDocument ParseHamlFile(HamlFile hamlFile) { var result = new HamlDocument(hamlFile.FileName); ParseNode(result, hamlFile); return(result); }
public void ParseHamlFile_UnknownRuleType_ThrowsUnknownRuleException() { var line = new HamlLine("", HamlRuleEnum.Unknown, "", 0); var file = new HamlFile(""); file.AddLine(line); Assert.Throws <HamlUnknownRuleException>(() => _parser.ParseHamlFile(file)); }
private void ParseNode(HamlNode node, HamlFile hamlFile) { //node.IsMultiLine = true; while ((!hamlFile.EndOfFile) && (hamlFile.CurrentLine.IndentCount > node.IndentCount)) { var nodeLine = hamlFile.CurrentLine; var childNode = HamlNodeFactory.GetHamlNode(nodeLine); node.AddChild(childNode); hamlFile.MoveNext(); if (hamlFile.EndOfFile == false && hamlFile.CurrentLine.IndentCount > nodeLine.IndentCount) { ParseNode(childNode, hamlFile); } } }