summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2016-09-09 16:15:53 +0200
committerAraq <rumpf_a@web.de>2016-09-09 16:15:53 +0200
commit89320e133bb455cb94ab5a0aaecb45813d10d7b5 (patch)
tree69d95677f12d92c94902a86cb775deaf103460da /lib
parent083b31b47314c1aa70b2726a9b7d0a3c942c2bd8 (diff)
downloadNim-89320e133bb455cb94ab5a0aaecb45813d10d7b5.tar.gz
Make htmlparser compile without warnings
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/htmlparser.nim31
1 files changed, 17 insertions, 14 deletions
diff --git a/lib/pure/htmlparser.nim b/lib/pure/htmlparser.nim
index 1fe0b297b..10a786555 100644
--- a/lib/pure/htmlparser.nim
+++ b/lib/pure/htmlparser.nim
@@ -452,7 +452,10 @@ proc parse(x: var XmlParser, errors: var seq[string]): XmlNode
 proc expected(x: var XmlParser, n: XmlNode): string =
   result = errorMsg(x, "</" & n.tag & "> expected")
 
-template elemName(x: expr): expr = rawData(x)
+template elemName(x: untyped): untyped = rawData(x)
+
+template adderr(x: untyped) =
+  errors.add(x)
 
 proc untilElementEnd(x: var XmlParser, result: XmlNode,
                      errors: var seq[string]) =
@@ -469,24 +472,24 @@ proc untilElementEnd(x: var XmlParser, result: XmlNode,
         # allow ``<p>`` in `<dd>`, `<dt>` and ``<li>`` in next case
         if htmlTag(x.elemName) in {tagLi, tagP, tagDt, tagDd, tagInput,
                                    tagOption}:
-          errors.add(expected(x, result))
+          adderr(expected(x, result))
           break
       of tagDd, tagDt, tagLi:
         if htmlTag(x.elemName) in {tagLi, tagDt, tagDd, tagInput,
                                    tagOption}:
-          errors.add(expected(x, result))
+          adderr(expected(x, result))
           break
       of tagTd, tagTh:
         if htmlTag(x.elemName) in {tagTr, tagTd, tagTh, tagTfoot, tagThead}:
-          errors.add(expected(x, result))
+          adderr(expected(x, result))
           break
       of tagTr:
         if htmlTag(x.elemName) == tagTr:
-          errors.add(expected(x, result))
+          adderr(expected(x, result))
           break
       of tagOptgroup:
         if htmlTag(x.elemName) in {tagOption, tagOptgroup}:
-          errors.add(expected(x, result))
+          adderr(expected(x, result))
           break
       else: discard
       result.addNode(parse(x, errors))
@@ -495,11 +498,11 @@ proc untilElementEnd(x: var XmlParser, result: XmlNode,
         next(x)
       else:
         #echo "5; expected: ", result.htmltag, " ", x.elemName
-        errors.add(expected(x, result))
+        adderr(expected(x, result))
         # do not skip it here!
       break
     of xmlEof:
-      errors.add(expected(x, result))
+      adderr(expected(x, result))
       break
     else:
       result.addNode(parse(x, errors))
@@ -516,14 +519,14 @@ proc parse(x: var XmlParser, errors: var seq[string]): XmlNode =
     # we just ignore processing instructions for now
     next(x)
   of xmlError:
-    errors.add(errorMsg(x))
+    adderr(errorMsg(x))
     next(x)
   of xmlElementStart:
     result = newElement(toLowerAscii(x.elemName))
     next(x)
     untilElementEnd(x, result, errors)
   of xmlElementEnd:
-    errors.add(errorMsg(x, "unexpected ending tag: " & x.elemName))
+    adderr(errorMsg(x, "unexpected ending tag: " & x.elemName))
   of xmlElementOpen:
     result = newElement(toLowerAscii(x.elemName))
     next(x)
@@ -537,16 +540,16 @@ proc parse(x: var XmlParser, errors: var seq[string]): XmlNode =
         next(x)
         break
       of xmlError:
-        errors.add(errorMsg(x))
+        adderr(errorMsg(x))
         next(x)
         break
       else:
-        errors.add(errorMsg(x, "'>' expected"))
+        adderr(errorMsg(x, "'>' expected"))
         next(x)
         break
     untilElementEnd(x, result, errors)
   of xmlAttribute, xmlElementClose:
-    errors.add(errorMsg(x, "<some_tag> expected"))
+    adderr(errorMsg(x, "<some_tag> expected"))
     next(x)
   of xmlCData:
     result = newCData(x.rawData)
@@ -570,7 +573,7 @@ proc parseHtml*(s: Stream, filename: string,
   result = newElement("document")
   result.addNode(parse(x, errors))
   #if x.kind != xmlEof:
-  #  errors.add(errorMsg(x, "EOF expected"))
+  #  adderr(errorMsg(x, "EOF expected"))
   while x.kind != xmlEof:
     var oldPos = x.bufpos # little hack to see if we made any progess
     result.addNode(parse(x, errors))