From 84108be5f9571accce19e3b948a951db485b8750 Mon Sep 17 00:00:00 2001 From: Martin Nilsson <mani@lysator.liu.se> Date: Sun, 4 Mar 2007 18:38:39 +0100 Subject: [PATCH] Store string width in XML. Rev: lib/modules/Tools.pmod/AutoDoc.pmod/PikeObjects.pmod:1.32 Rev: lib/modules/Tools.pmod/AutoDoc.pmod/PikeParser.pike:1.43 Rev: refdoc/xml.txt:1.3 --- lib/modules/Tools.pmod/AutoDoc.pmod/PikeObjects.pmod | 12 ++++++++++++ lib/modules/Tools.pmod/AutoDoc.pmod/PikeParser.pike | 2 +- refdoc/xml.txt | 8 +++++++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/lib/modules/Tools.pmod/AutoDoc.pmod/PikeObjects.pmod b/lib/modules/Tools.pmod/AutoDoc.pmod/PikeObjects.pmod index ca36c3507f..3edebf1ca7 100644 --- a/lib/modules/Tools.pmod/AutoDoc.pmod/PikeObjects.pmod +++ b/lib/modules/Tools.pmod/AutoDoc.pmod/PikeObjects.pmod @@ -77,7 +77,19 @@ class IntType { class StringType { inherit Type; + string width; void create() { ::create("string"); } + string print() { + if (width) + return "string("+width+")"; + else + return "string"; + } + string xml() { + if (width) + return xmltag("string", xmltag("width",width)); + return xmltag("string"); + } } class MixedType { diff --git a/lib/modules/Tools.pmod/AutoDoc.pmod/PikeParser.pike b/lib/modules/Tools.pmod/AutoDoc.pmod/PikeParser.pike index bb41b2b908..6ffca2c5c3 100644 --- a/lib/modules/Tools.pmod/AutoDoc.pmod/PikeParser.pike +++ b/lib/modules/Tools.pmod/AutoDoc.pmod/PikeParser.pike @@ -322,7 +322,7 @@ StringType parseString() { StringType s = StringType(); if (peekToken() == "(") { readToken(); - eatLiteral(); + s->width = eatLiteral(); eat(")"); } return s; diff --git a/refdoc/xml.txt b/refdoc/xml.txt index 38d084781c..38e3c31789 100644 --- a/refdoc/xml.txt +++ b/refdoc/xml.txt @@ -288,7 +288,6 @@ the form <foo/>: <float/> <mixed/> <program/> - <string/> <void/> The same goes for mapping, array, function, object, multiset, &c that have @@ -324,6 +323,13 @@ int <int><min>0</min><max>MAX</max></int> +string + A string type can have a numerical width value. + + string(8) + + <string><width>8</width></string> + mapping The types of the indices and values are given: -- GitLab