Merge: Json Ad-Hoc string parser
authorJean Privat <jean@pryen.org>
Wed, 16 Dec 2015 17:12:13 +0000 (12:12 -0500)
committerJean Privat <jean@pryen.org>
Wed, 16 Dec 2015 17:12:13 +0000 (12:12 -0500)
Simple ad-hoc JSON parser working in a similar way as `DOMXmlParser` or `SExpParser`, on the simple  example, the runtime now is around 1.5 seconds.

Once #1885 is merged however, the runtime is ~0.65 seconds, which is nice.

Depends on #1884

Pull-Request: #1886
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>

38 files changed:
contrib/refund/tests/res/month_error3.res
contrib/refund/tests/res/recl_date_error2.res
lib/core/text/native.nit
lib/json/static.nit
lib/json/string_parser.nit [new file with mode: 0644]
lib/parser_base.nit
tests/json_example.json [new file with mode: 0644]
tests/sav/fixme/neo_doxygen_dump_args4.res
tests/sav/fixme/neo_doxygen_dump_args5.res
tests/sav/neo_doxygen_dump_args6.res
tests/sav/neo_doxygen_dump_args7.res
tests/sav/neo_doxygen_dump_args8.res
tests/sav/neo_doxygen_dump_args9.res
tests/sav/neo_doxygen_file_compound.res
tests/sav/neo_doxygen_namespace_members.res
tests/sav/nitce/test_json_deserialization_alt1.res
tests/sav/nitce/test_serialization.res
tests/sav/nitce/test_serialization_alt4.res
tests/sav/nitce/test_serialization_alt5.res
tests/sav/nitce/test_serialization_redef.res
tests/sav/nitce/test_serialization_redef_alt0.res
tests/sav/nitce/test_serialization_redef_alt1.res
tests/sav/nitce/test_serialization_redef_alt2.res
tests/sav/test_adhoc_json_parse.res [new file with mode: 0644]
tests/sav/test_adhoc_json_parse_args1.res [new file with mode: 0644]
tests/sav/test_json_deserialization.res
tests/sav/test_json_deserialization_alt1.res
tests/sav/test_json_deserialization_alt2.res
tests/sav/test_serialization.res
tests/sav/test_serialization_alt1.res
tests/sav/test_serialization_alt4.res
tests/sav/test_serialization_alt5.res
tests/sav/test_serialization_redef.res
tests/sav/test_serialization_redef_alt0.res
tests/sav/test_serialization_redef_alt1.res
tests/sav/test_serialization_redef_alt2.res
tests/test_adhoc_json_parse.args [new file with mode: 0644]
tests/test_adhoc_json_parse.nit [new file with mode: 0644]

index 088b6fe..095cc23 100644 (file)
@@ -1,3 +1,3 @@
 {
-       "message": "Wrong format for `mois` (expected AAAA-MM got 2015\/01)"
+       "message": "Wrong format for `mois` (expected AAAA-MM got 2015/01)"
 }
index 5fee43f..298068d 100644 (file)
@@ -1,3 +1,3 @@
 {
-       "message": "Wrong format for `date` (expected AAAA-MM-DD got 2015\/01\/11)"
+       "message": "Wrong format for `date` (expected AAAA-MM-DD got 2015/01/11)"
 }
index 4028ea0..9ea8382 100644 (file)
@@ -31,6 +31,21 @@ redef class Byte
        end
 end
 
+redef class Int
+       # Returns the code_point from a utf16 surrogate pair
+       #
+       #     assert 0xD83DDE02.from_utf16_surr == 0x1F602
+       fun from_utf16_surr: Int do
+               var hi = (self & 0xFFFF0000) >> 16
+               var lo = self & 0xFFFF
+               var cp = 0
+               cp += (hi - 0xD800) << 10
+               cp += lo - 0xDC00
+               cp += 0x10000
+               return cp
+       end
+end
+
 # Native strings are simple C char *
 extern class NativeString `{ char* `}
        # Creates a new NativeString with a capacity of `length`
index 6f2a9e4..15a4355 100644 (file)
@@ -47,7 +47,7 @@ interface Jsonable
        # avoid cyclic references between `append_json` and `to_json` when none are
        # implemented.
        protected fun to_json_by_append: String do
-               var buffer = new RopeBuffer
+               var buffer = new FlatBuffer
                append_json(buffer)
                return buffer.to_s
        end
@@ -89,6 +89,22 @@ end
 redef class Text
        super Jsonable
 
+       # Removes JSON-escaping if necessary in a JSON string
+       #
+       #     assert "\\\"string\\uD83D\\uDE02\\\"".unescape_json == "\"string😂\""
+       fun unescape_json: Text do
+               if not json_need_escape then return self
+               return self.json_to_nit_string
+       end
+
+       # Does `self` need treatment from JSON to Nit ?
+       #
+       # i.e. is there at least one `\` character in it ?
+       #
+       #     assert not "string".json_need_escape
+       #     assert "\\\"string\\\"".json_need_escape
+       protected fun json_need_escape: Bool do return has('\\')
+
        redef fun append_json(buffer) do
                buffer.add '\"'
                for i in [0 .. self.length[ do
@@ -97,8 +113,6 @@ redef class Text
                                buffer.append "\\\\"
                        else if char == '\"' then
                                buffer.append "\\\""
-                       else if char == '\/' then
-                               buffer.append "\\/"
                        else if char < ' ' then
                                if char == '\n' then
                                        buffer.append "\\n"
@@ -106,10 +120,6 @@ redef class Text
                                        buffer.append "\\r"
                                else if char == '\t' then
                                        buffer.append "\\t"
-                               else if char == 0x0C.code_point then
-                                       buffer.append "\\f"
-                               else if char == 0x08.code_point then
-                                       buffer.append "\\b"
                                else
                                        buffer.append char.escape_to_utf16
                                end
@@ -120,13 +130,66 @@ redef class Text
                buffer.add '\"'
        end
 
+       # Escapes `self` from a JSON string to a Nit string
+       #
+       #     assert "\\\"string\\\"".json_to_nit_string == "\"string\""
+       #     assert "\\nEscape\\t\\n".json_to_nit_string == "\nEscape\t\n"
+       #     assert "\\u0041zu\\uD800\\uDFD3".json_to_nit_string == "Azu𐏓"
+       protected fun json_to_nit_string: String do
+               var res = new FlatBuffer.with_capacity(bytelen)
+               var i = 0
+               while i < self.length do
+                       var char = self[i]
+                       if char == '\\' then
+                               i += 1
+                               char = self[i]
+                               if char == 'b' then
+                                       char = 0x08.code_point
+                               else if char == 'f' then
+                                       char = 0x0C.code_point
+                               else if char == 'n' then
+                                       char = '\n'
+                               else if char == 'r' then
+                                       char = '\r'
+                               else if char == 't' then
+                                       char = '\t'
+                               else if char == 'u' then
+                                       var code = substring(i + 1, 4)
+                                       var hx = code.to_hex
+                                       if hx >= 0xD800 and hx <= 0xDFFF then
+                                               var lostr = substring(i + 7, 4)
+                                               if lostr.length < 4 then
+                                                       hx = 0xFFFD
+                                               else
+                                                       hx <<= 16
+                                                       hx += lostr.to_hex
+                                                       hx = hx.from_utf16_surr
+                                               end
+                                               i += 6
+                                       end
+                                       i += 4
+                                       char = hx.code_point
+                               end
+                               # `"`, `/` or `\` => Keep `char` as-is.
+                       end
+                       res.add char
+                       i += 1
+               end
+               return res.to_s
+       end
+
+
        # Encode `self` in JSON.
        #
        # ~~~
        # assert "\t\"http://example.com\"\r\n\0\\".to_json ==
-       #     "\"\\t\\\"http:\\/\\/example.com\\\"\\r\\n\\u0000\\\\\""
+       #     "\"\\t\\\"http://example.com\\\"\\r\\n\\u0000\\\\\""
        # ~~~
-       redef fun to_json do return to_json_by_append
+       redef fun to_json do
+               var b = new FlatBuffer.with_capacity(bytelen)
+               append_json(b)
+               return b.to_s
+       end
 
        # Parse `self` as JSON.
        #
@@ -173,6 +236,16 @@ redef class Text
        end
 end
 
+redef class FlatText
+       redef fun json_need_escape do
+               var its = items
+               for i in [first_byte .. last_byte] do
+                       if its[i] == 0x5Cu8 then return true
+               end
+               return false
+       end
+end
+
 redef class Buffer
 
        # Append the JSON representation of `jsonable` to `self`.
@@ -424,51 +497,7 @@ end
 
 redef class Nstring
        # The represented string.
-       private fun to_nit_string: String do
-               var res = new Buffer
-               var i = 1
-               while i < text.length - 1 do
-                       var char = text[i]
-                       if char == '\\' then
-                               i += 1
-                               char = text[i]
-                               if char == 'b' then
-                                       char = 0x08.code_point
-                               else if char == 'f' then
-                                       char = 0x0C.code_point
-                               else if char == 'n' then
-                                       char = '\n'
-                               else if char == 'r' then
-                                       char = '\r'
-                               else if char == 't' then
-                                       char = '\t'
-                               else if char == 'u' then
-                                       var escape = new Buffer
-                                       escape.append "\\u"
-                                       var code = text.substring(i + 1, 4)
-                                       escape.append code
-                                       var hx = code.to_hex
-                                       if hx >= 0xD800 and hx <= 0xDFFF then
-                                               var lostr = text.substring(i + 7, 4)
-                                               if lostr.length < 4 then
-                                                       escape.clear
-                                                       escape.append "\\uFFFD"
-                                               else
-                                                       escape.append "\\u"
-                                                       escape.append lostr
-                                               end
-                                               i += 6
-                                       end
-                                       i += 4
-                                       char = escape.from_utf16_escape
-                               end
-                               # `"`, `/` or `\` => Keep `char` as-is.
-                       end
-                       res.add char
-                       i += 1
-               end
-               return res.to_s
-       end
+       private fun to_nit_string: String do return text.substring(1, text.length - 2).unescape_json.to_s
 end
 
 redef class Nvalue_object
diff --git a/lib/json/string_parser.nit b/lib/json/string_parser.nit
new file mode 100644 (file)
index 0000000..d429697
--- /dev/null
@@ -0,0 +1,293 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Simple ad-hoc implementation of a JSON parser for String inputs
+module string_parser
+
+import parser_base
+import static
+
+redef class Char
+       # Is `self` a valid number start ?
+       private fun is_json_num_start: Bool do
+               if self == '-' then return true
+               if self.is_numeric then return true
+               return false
+       end
+
+       # Is `self` a valid JSON separator ?
+       private fun is_json_separator: Bool do
+               if self == ':' then return true
+               if self == ',' then return true
+               if self == '{' then return true
+               if self == '}' then return true
+               if self == '[' then return true
+               if self == ']' then return true
+               if self == '"' then return true
+               if self.is_whitespace then return true
+               return false
+       end
+end
+
+# A simple ad-hoc JSON parser
+#
+# To parse a simple JSON document, read it as a String and give it to `parse_entity`
+# NOTE: if your document contains several non-nested entities, use `parse_entity` for each
+# JSON entity to parse
+class JSONStringParser
+       super StringProcessor
+
+       # Parses a JSON Entity
+       #
+       # ~~~nit
+       # var p = new JSONStringParser("""{"numbers": [1,23,3], "string": "string"}""")
+       # assert p.parse_entity isa JsonObject
+       # ~~~
+       fun parse_entity: nullable Jsonable do
+               var srclen = len
+               ignore_whitespaces
+               if pos >= srclen then return make_parse_error("Empty JSON")
+               var c = src[pos]
+               if c == '[' then
+                       pos += 1
+                       return parse_json_array
+               else if c == '"' then
+                       var s = parse_json_string
+                       return s
+               else if c == '{' then
+                       pos += 1
+                       return parse_json_object
+               else if c == 'f' then
+                       if pos + 4 >= srclen then make_parse_error("Error: bad JSON entity")
+                       if src[pos + 1] == 'a' and src[pos + 2] == 'l' and src[pos + 3] == 's' and src[pos + 4] == 'e' then
+                               pos += 5
+                               return false
+                       end
+                       return make_parse_error("Error: bad JSON entity")
+               else if c == 't' then
+                       if pos + 3 >= srclen then make_parse_error("Error: bad JSON entity")
+                       if src[pos + 1] == 'r' and src[pos + 2] == 'u' and src[pos + 3] == 'e' then
+                               pos += 4
+                               return true
+                       end
+                       return make_parse_error("Error: bad JSON entity")
+               else if c == 'n' then
+                       if pos + 3 >= srclen then make_parse_error("Error: bad JSON entity")
+                       if src[pos + 1] == 'u' and src[pos + 2] == 'l' and src[pos + 3] == 'l' then
+                               pos += 4
+                               return null
+                       end
+                       return make_parse_error("Error: bad JSON entity")
+               end
+               if not c.is_json_num_start then return make_parse_error("Bad JSON character")
+               return parse_json_number
+       end
+
+       # Parses a JSON Array
+       fun parse_json_array: Jsonable do
+               var max = len
+               if pos >= max then return make_parse_error("Incomplete JSON array")
+               var arr = new JsonArray
+               var c = src[pos]
+               while not c == ']' do
+                       ignore_whitespaces
+                       if pos >= max then return make_parse_error("Incomplete JSON array")
+                       if src[pos] == ']' then break
+                       var ent = parse_entity
+                       #print "Parsed an entity {ent} for a JSON array"
+                       if ent isa JsonParseError then return ent
+                       arr.add ent
+                       ignore_whitespaces
+                       if pos >= max then return make_parse_error("Incomplete JSON array")
+                       c = src[pos]
+                       if c == ']' then break
+                       if c != ',' then return make_parse_error("Bad array separator {c}")
+                       pos += 1
+               end
+               pos += 1
+               return arr
+       end
+
+       # Parses a JSON Object
+       fun parse_json_object: Jsonable do
+               var max = len
+               if pos >= max then return make_parse_error("Incomplete JSON object")
+               var obj = new JsonObject
+               var c = src[pos]
+               while not c == '}' do
+                       ignore_whitespaces
+                       if pos >= max then return make_parse_error("Malformed JSON object")
+                       if src[pos] == '}' then break
+                       var key = parse_entity
+                       #print "Parsed key {key} for JSON object"
+                       if not key isa String then return make_parse_error("Bad key format {key or else "null"}")
+                       ignore_whitespaces
+                       if pos >= max then return make_parse_error("Incomplete JSON object")
+                       if not src[pos] == ':' then return make_parse_error("Bad key/value separator {src[pos]}")
+                       pos += 1
+                       ignore_whitespaces
+                       var value = parse_entity
+                       #print "Parsed value {value} for JSON object"
+                       if value isa JsonParseError then return value
+                       obj[key] = value
+                       ignore_whitespaces
+                       if pos >= max then return make_parse_error("Incomplete JSON object")
+                       c = src[pos]
+                       if c == '}' then break
+                       if c != ',' then return make_parse_error("Bad object separator {src[pos]}")
+                       pos += 1
+               end
+               pos += 1
+               return obj
+       end
+
+       # Creates a `JsonParseError` with the right message and location
+       protected fun make_parse_error(message: String): JsonParseError do
+               var err = new JsonParseError(message)
+               err.location = hot_location
+               return err
+       end
+
+       # Parses an Int or Float
+       fun parse_json_number: Jsonable do
+               var max = len
+               var p = pos
+               var c = src[p]
+               var is_neg = false
+               if c == '-' then
+                       is_neg = true
+                       p += 1
+                       if p >= max then return make_parse_error("Bad JSON number")
+                       c = src[p]
+               end
+               var val = 0
+               while c.is_numeric do
+                       val *= 10
+                       val += c.to_i
+                       p += 1
+                       if p >= max then break
+                       c = src[p]
+               end
+               if c == '.' then
+                       p += 1
+                       if p >= max then return make_parse_error("Bad JSON number")
+                       c = src[p]
+                       var fl = val.to_f
+                       var frac = 0.1
+                       while c.is_numeric do
+                               fl += c.to_i.to_f * frac
+                               frac /= 10.0
+                               p += 1
+                               if p >= max then break
+                               c = src[p]
+                       end
+                       if c == 'e' or c == 'E' then
+                               p += 1
+                               var exp = 0
+                               if p >= max then return make_parse_error("Malformed JSON number")
+                               c = src[p]
+                               while c.is_numeric do
+                                       exp *= 10
+                                       exp += c.to_i
+                                       p += 1
+                                       if p >= max then break
+                                       c = src[p]
+                               end
+                               fl *= (10 ** exp).to_f
+                       end
+                       if p < max and not c.is_json_separator then return make_parse_error("Malformed JSON number")
+                       pos = p
+                       if is_neg then return -fl
+                       return fl
+               end
+               if c == 'e' or c == 'E' then
+                       p += 1
+                       if p >= max then return make_parse_error("Bad JSON number")
+                       var exp = src[p].to_i
+                       c = src[p]
+                       while c.is_numeric do
+                               exp *= 10
+                               exp += c.to_i
+                               p += 1
+                               if p >= max then break
+                               c = src[p]
+                       end
+                       val *= (10 ** exp)
+               end
+               if p < max and not src[p].is_json_separator then return make_parse_error("Malformed JSON number")
+               pos = p
+               if is_neg then return -val
+               return val
+       end
+
+       # Parses and returns a Nit string from a JSON String
+       fun parse_json_string: Jsonable do
+               var ln = src.length
+               var p = pos
+               p += 1
+               if p > ln then return make_parse_error("Malformed JSON String")
+               var c = src[p]
+               var st = p
+               while c != '"' do
+                       if c == '\\' then
+                               if p + 1 >= ln then return make_parse_error("Malformed Escape sequence in JSON string")
+                               p += 1
+                               c = src[p]
+                               if c == 'u' then
+                                       p += 1
+                                       if p + 3 >= ln then return make_parse_error("Bad Unicode escape sequence in string")
+                                       for i in [0 .. 4[ do if not src[p + i].is_hexdigit then return make_parse_error("Bad Unicode escape sequence in string")
+                                       p += 3
+                               end
+                       end
+                       p += 1
+                       if p >= ln then return make_parse_error("Malformed JSON String")
+                       c = src[p]
+               end
+               pos = p + 1
+               return src.substring(st, p - st).unescape_json
+       end
+
+       # Ignores any character until a JSON separator is encountered
+       fun ignore_until_separator do
+               var max = len
+               while pos < max do
+                       if not src[pos].is_json_separator then return
+               end
+       end
+end
+
+redef class Text
+       redef fun parse_json do return (new JSONStringParser(self.to_s)).parse_entity
+end
+
+redef class JsonParseError
+
+       # Location of the error in source
+       var location: nullable Location = null
+
+       # Get the JSON representation of `self`.
+       #
+       # ~~~
+       # var err = new JsonParseError("foo", new Position(1, 2, 3, 4, 5, 6))
+       # assert err.to_json == "Parsing error: foo"
+       # ~~~
+       redef fun to_json do
+               var l = location
+               var m = message
+               return if l == null then "Parsing error: {m}" else "Parsing error at {l}: {m}"
+       end
+
+       redef fun to_s do return to_json
+end
index ac002fe..234b733 100644 (file)
@@ -14,57 +14,71 @@ module parser_base
 # Basic facilities for common parser operations on String sources
 class StringProcessor
        # Source document to parse
-       private var src: String
+       protected var src: String
+
+       # Length of the source document
+       protected var len: Int is noinit
 
        # Current position in `src`
-       private var pos = 0
+       protected var pos = 0
 
        # Position at which current line started
-       private var line_start = 0
+       protected var line_start = 0
 
        # Current line in `src`
-       private var line = 1
+       protected var line = 1
 
        # Offset in the current line
-       private fun line_offset: Int do return pos - line_start + 1
+       protected fun line_offset: Int do return pos - line_start + 1
+
+       init do
+               _len = src.length
+       end
 
        # Gives the current location in the `src`
        fun current_location: Location do return new Location(line, line_offset)
 
        # Advances in `src` until a non-whitespace character is encountered
-       private fun ignore_whitespaces do
-               var srclen = src.length
-               if pos >= srclen then return
-               var c = src[pos]
+       protected fun ignore_whitespaces do
+               var srclen = _len
+               var p = _pos
+               if p >= srclen then return
+               var c = src[p]
                while c.is_whitespace do
-                       pos += 1
-                       if pos >= srclen then break
+                       p += 1
+                       if p >= srclen then break
                        if c == '\n' then
-                               line += 1
-                               line_start = pos
+                               _line += 1
+                               _line_start = p
                        end
-                       c = src[pos]
+                       c = src[p]
                end
+               _pos = p
+               return
        end
 
        # Reads characters until pattern `s` is found
-       private fun ignore_until(s: String): Int do
-               if s.length == 0 then return pos
-               var srclen = src.length
-               if pos >= srclen then return -1
+       protected fun ignore_until(s: String): Int do
+               if s.length == 0 then return _pos
+               var srclen = _len
+               var p = _pos
+               if p >= srclen then return -1
                loop
                        var c = s[0]
-                       var src_c = src[pos]
+                       var src_c = src[p]
                        while src_c != c do
-                               pos += 1
-                               if pos >= srclen then return -1
+                               p += 1
+                               if p >= srclen then
+                                       _pos = p
+                                       return -1
+                               end
                                if src_c == '\n' then
                                        line += 1
                                        line_start= pos
                                end
-                               src_c = src[pos]
+                               src_c = src[p]
                        end
-                       var relpos = pos
+                       var relpos = p
                        var fnd = true
                        for i in s do
                                if relpos >= srclen then
@@ -72,15 +86,27 @@ class StringProcessor
                                        break
                                end
                                if src[relpos] != i then
-                                       pos += 1
+                                       p += 1
                                        fnd = false
                                        break
                                end
                                relpos += 1
                        end
-                       if fnd then return pos
+                       if fnd then
+                               _pos = p
+                               return p
+                       end
                end
        end
+
+       # Ignores any printable character until a whitespace is encountered
+       protected fun ignore_until_whitespace: Int do
+               while not src[pos].is_whitespace do pos += 1
+               return pos
+       end
+
+       # Returns the current location as a `Location` object
+       protected fun hot_location: Location do return new Location(line, line_offset)
 end
 
 # Information about the location of an entity in a source document
diff --git a/tests/json_example.json b/tests/json_example.json
new file mode 100644 (file)
index 0000000..892f1ce
--- /dev/null
@@ -0,0 +1 @@
+[{"precision":"zip","Latitude":37.7668,"Longitude":-122.3959,"Address":"","City":"SANFRANCISCO","State":"CA","Zip":"94107","Country":"US"},{"precision":"zip","Latitude":37.371991,"Longitude":-122.026020,"Address":"","City":"SUNNYVALE","State":"CA","Zip":"94085","Country":"US"}]
index 66e13f0..7bc9f86 100644 (file)
@@ -59,7 +59,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"org","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"org","location":"/dev/null:1,1--1,1"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -89,7 +89,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"org","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"org","location":"/dev/null:1,1--1,1"}
 
 
 Edge
@@ -103,7 +103,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:16,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:16,1--1,1"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -111,7 +111,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:1,1--1,1","name":"A"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:1,1--1,1","name":"A"}
 
 
 Edge
@@ -125,7 +125,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:1,1--1,1","name":"A"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:1,1--1,1","name":"A"}
 ----
 =to=Entity#32:classorg_1_1example_1_1foo_1_1_a
 =labels=Array(3):
@@ -133,7 +133,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"abstract class","visibility":"public","name":"A","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1"}
+{"kind":"abstract class","visibility":"public","name":"A","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1"}
 
 
 Edge
@@ -147,7 +147,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:1,1--1,1","name":"A"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:1,1--1,1","name":"A"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -155,7 +155,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1","is_intro":true,"name":"A"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1","is_intro":true,"name":"A"}
 
 
 Edge
@@ -169,7 +169,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:16,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:16,1--1,1"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -177,7 +177,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:1,1--1,1","name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:1,1--1,1","name":"B"}
 
 
 Edge
@@ -191,7 +191,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:1,1--1,1","name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:1,1--1,1","name":"B"}
 ----
 =to=Entity#32:classorg_1_1example_1_1foo_1_1_b
 =labels=Array(3):
@@ -199,7 +199,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"B","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1"}
+{"kind":"class","visibility":"public","name":"B","location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1"}
 
 
 Edge
@@ -213,7 +213,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:1,1--1,1","name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:1,1--1,1","name":"B"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -221,7 +221,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 
 
 Edge
@@ -235,7 +235,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:16,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:16,1--1,1"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -243,7 +243,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:1,1--1,1","name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:1,1--1,1","name":"C","mdoc":["An interface."]}
 
 
 Edge
@@ -257,7 +257,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:1,1--1,1","name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:1,1--1,1","name":"C","mdoc":["An interface."]}
 ----
 =to=Entity#36:interfaceorg_1_1example_1_1foo_1_1_c
 =labels=Array(3):
@@ -265,7 +265,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface."]}
+{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","mdoc":["An interface."]}
 
 
 Edge
@@ -279,7 +279,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:1,1--1,1","name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:1,1--1,1","name":"C","mdoc":["An interface."]}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -287,7 +287,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
 
 
 Edge
@@ -301,7 +301,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:16,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:16,1--1,1"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -309,7 +309,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:1,1--1,1","name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:1,1--1,1","name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
 
 
 Edge
@@ -323,7 +323,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:1,1--1,1","name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:1,1--1,1","name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
 ----
 =to=Entity#42:classorg_1_1example_1_1foo_1_1_empty_class
 =labels=Array(3):
@@ -331,7 +331,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"package","name":"EmptyClass","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:21,1--21,1","mdoc":["This class is empty and is only visible in this package."]}
+{"kind":"class","visibility":"package","name":"EmptyClass","location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:21,1--21,1","mdoc":["This class is empty and is only visible in this package."]}
 
 
 Edge
@@ -345,7 +345,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:1,1--1,1","name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:1,1--1,1","name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -353,7 +353,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:21,1--21,1","is_intro":true,"name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:21,1--21,1","is_intro":true,"name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
 
 
 Edge
@@ -414,7 +414,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:22,1--1,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","mdoc":["Does something..."],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:22,1--1,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","mdoc":["Does something..."],"is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -438,7 +438,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:22,1--1,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","mdoc":["Does something..."],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:22,1--1,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","mdoc":["Does something..."],"is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -577,7 +577,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"abstract class","visibility":"public","name":"A","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1"}
+{"kind":"abstract class","visibility":"public","name":"A","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -609,7 +609,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"abstract class","visibility":"public","name":"A","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1"}
+{"kind":"abstract class","visibility":"public","name":"A","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1"}
 
 
 Edge
@@ -623,7 +623,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1","is_intro":true,"name":"A"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1","is_intro":true,"name":"A"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -646,7 +646,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1","is_intro":true,"name":"A"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1","is_intro":true,"name":"A"}
 ----
 =to=Entity#32:classorg_1_1example_1_1foo_1_1_a
 =labels=Array(3):
@@ -654,7 +654,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"abstract class","visibility":"public","name":"A","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1"}
+{"kind":"abstract class","visibility":"public","name":"A","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1"}
 
 
 Edge
@@ -668,7 +668,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1","is_intro":true,"name":"A"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1","is_intro":true,"name":"A"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -700,7 +700,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1","is_intro":true,"name":"A"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1","is_intro":true,"name":"A"}
 
 
 Edge
@@ -714,7 +714,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1","is_intro":true,"name":"A"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1","is_intro":true,"name":"A"}
 ----
 =to=Entity#67:classorg_1_1example_1_1foo_1_1_a_1add415ae4129969055d678c7e7e048852
 =labels=Array(4):
@@ -723,7 +723,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:22,1--1,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","mdoc":["Does something..."],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:22,1--1,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","mdoc":["Does something..."],"is_intro":true}
 
 
 Edge
@@ -738,7 +738,7 @@ Edge
 8:MPropDef
 13:MAttributeDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:19,1---1,1","visibility":"protected","name":"qux","is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:19,1---1,1","visibility":"protected","name":"qux","is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -762,7 +762,7 @@ Edge
 8:MPropDef
 13:MAttributeDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:19,1---1,1","visibility":"protected","name":"qux","is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:19,1---1,1","visibility":"protected","name":"qux","is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -832,7 +832,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(7):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:21,1--23,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:21,1--23,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -856,7 +856,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(7):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:21,1--23,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:21,1--23,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -996,7 +996,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:28,1--28,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["Some overriden documentation."],"is_intro":false}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:28,1--28,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["Some overriden documentation."],"is_intro":false}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1020,7 +1020,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:28,1--28,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["Some overriden documentation."],"is_intro":false}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:28,1--28,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["Some overriden documentation."],"is_intro":false}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1067,7 +1067,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"B","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1"}
+{"kind":"class","visibility":"public","name":"B","location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1099,7 +1099,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"B","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1"}
+{"kind":"class","visibility":"public","name":"B","location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1"}
 
 
 Edge
@@ -1113,7 +1113,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1136,7 +1136,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 ----
 =to=Entity#32:classorg_1_1example_1_1foo_1_1_b
 =labels=Array(3):
@@ -1144,7 +1144,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"B","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1"}
+{"kind":"class","visibility":"public","name":"B","location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1"}
 
 
 Edge
@@ -1158,7 +1158,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1181,7 +1181,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1204,7 +1204,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1236,7 +1236,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 
 
 Edge
@@ -1250,7 +1250,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 ----
 =to=Entity#67:classorg_1_1example_1_1foo_1_1_b_1ac6b627949b10b9357eefc0cafcae1d87
 =labels=Array(4):
@@ -1259,7 +1259,7 @@ Edge
 8:MPropDef
 13:MAttributeDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:19,1---1,1","visibility":"protected","name":"qux","is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:19,1---1,1","visibility":"protected","name":"qux","is_intro":true}
 
 
 Edge
@@ -1273,7 +1273,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1305,7 +1305,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 
 
 Edge
@@ -1319,7 +1319,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 ----
 =to=Entity#67:classorg_1_1example_1_1foo_1_1_b_1a11e157943665cc9e3a9be1502ebeb3b5
 =labels=Array(4):
@@ -1328,7 +1328,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(7):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:21,1--23,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:21,1--23,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","is_intro":true}
 
 
 Edge
@@ -1342,7 +1342,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 ----
 =to=Entity#67:classorg_1_1example_1_1foo_1_1_b_1a733f4e076f29c7d0c41ed258199ea1d9
 =labels=Array(4):
@@ -1351,7 +1351,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:28,1--28,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["Some overriden documentation."],"is_intro":false}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:28,1--28,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["Some overriden documentation."],"is_intro":false}
 
 
 Edge
@@ -1365,7 +1365,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"package","name":"EmptyClass","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:21,1--21,1","mdoc":["This class is empty and is only visible in this package."]}
+{"kind":"class","visibility":"package","name":"EmptyClass","location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:21,1--21,1","mdoc":["This class is empty and is only visible in this package."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1397,7 +1397,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"package","name":"EmptyClass","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:21,1--21,1","mdoc":["This class is empty and is only visible in this package."]}
+{"kind":"class","visibility":"package","name":"EmptyClass","location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:21,1--21,1","mdoc":["This class is empty and is only visible in this package."]}
 
 
 Edge
@@ -1411,7 +1411,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:21,1--21,1","is_intro":true,"name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:21,1--21,1","is_intro":true,"name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1434,7 +1434,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:21,1--21,1","is_intro":true,"name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:21,1--21,1","is_intro":true,"name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
 ----
 =to=Entity#42:classorg_1_1example_1_1foo_1_1_empty_class
 =labels=Array(3):
@@ -1442,7 +1442,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"package","name":"EmptyClass","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:21,1--21,1","mdoc":["This class is empty and is only visible in this package."]}
+{"kind":"class","visibility":"package","name":"EmptyClass","location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:21,1--21,1","mdoc":["This class is empty and is only visible in this package."]}
 
 
 Edge
@@ -1457,7 +1457,7 @@ Edge
 8:MPropDef
 13:MAttributeDef
 =properties=JsonObject(5):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["â\80\9cAnswer to the Ultimate Question of Life, the Universe, and Everything.","â\80\9c"],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["â\80\9cAnswer to the Ultimate Question of Life, the Universe, and Everything.","â\80\9c"],"is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1481,7 +1481,7 @@ Edge
 8:MPropDef
 13:MAttributeDef
 =properties=JsonObject(5):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["â\80\9cAnswer to the Ultimate Question of Life, the Universe, and Everything.","â\80\9c"],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["â\80\9cAnswer to the Ultimate Question of Life, the Universe, and Everything.","â\80\9c"],"is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1505,7 +1505,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:30,1--1,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["A function with implicit modifiers."],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:30,1--1,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["A function with implicit modifiers."],"is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1529,7 +1529,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:30,1--1,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["A function with implicit modifiers."],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:30,1--1,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["A function with implicit modifiers."],"is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1576,7 +1576,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface."]}
+{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","mdoc":["An interface."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1608,7 +1608,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface."]}
+{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","mdoc":["An interface."]}
 
 
 Edge
@@ -1622,7 +1622,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1645,7 +1645,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
 ----
 =to=Entity#36:interfaceorg_1_1example_1_1foo_1_1_c
 =labels=Array(3):
@@ -1653,7 +1653,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface."]}
+{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","mdoc":["An interface."]}
 
 
 Edge
@@ -1667,7 +1667,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1699,7 +1699,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
 
 
 Edge
@@ -1713,7 +1713,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
 ----
 =to=Entity#71:interfaceorg_1_1example_1_1foo_1_1_c_1a4e97061eb40b045e820de05b33c43d21
 =labels=Array(4):
@@ -1722,7 +1722,7 @@ Edge
 8:MPropDef
 13:MAttributeDef
 =properties=JsonObject(5):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["â\80\9cAnswer to the Ultimate Question of Life, the Universe, and Everything.","â\80\9c"],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["â\80\9cAnswer to the Ultimate Question of Life, the Universe, and Everything.","â\80\9c"],"is_intro":true}
 
 
 Edge
@@ -1736,7 +1736,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1768,7 +1768,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
 
 
 Edge
@@ -1782,7 +1782,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
 ----
 =to=Entity#71:interfaceorg_1_1example_1_1foo_1_1_c_1a28ac7ce349ebb3e4a7747a8dd951582b
 =labels=Array(4):
@@ -1791,7 +1791,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:30,1--1,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["A function with implicit modifiers."],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:30,1--1,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["A function with implicit modifiers."],"is_intro":true}
 
 
 Edge
@@ -1805,7 +1805,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"org","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"org","location":"/dev/null:1,1--1,1"}
 ----
 =to=Node
 =labels=Array(3):
@@ -1827,7 +1827,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"example","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"example","location":"/dev/null:1,1--1,1"}
 ----
 =to=Entity#12:namespaceorg
 =labels=Array(3):
@@ -1835,7 +1835,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"org","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"org","location":"/dev/null:1,1--1,1"}
 
 
 Edge
@@ -1849,7 +1849,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"org","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"org","location":"/dev/null:1,1--1,1"}
 ----
 =to=Entity#23:namespaceorg_1_1example
 =labels=Array(3):
@@ -1857,7 +1857,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"example","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"example","location":"/dev/null:1,1--1,1"}
 
 
 Edge
@@ -1871,7 +1871,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"example","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"example","location":"/dev/null:1,1--1,1"}
 ----
 =to=Node
 =labels=Array(3):
@@ -1893,7 +1893,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:16,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:16,1--1,1"}
 ----
 =to=Entity#23:namespaceorg_1_1example
 =labels=Array(3):
@@ -1901,7 +1901,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"example","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"example","location":"/dev/null:1,1--1,1"}
 
 
 Edge
@@ -1915,7 +1915,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"example","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"example","location":"/dev/null:1,1--1,1"}
 ----
 =to=Entity#30:namespaceorg_1_1example_1_1foo
 =labels=Array(3):
@@ -1923,7 +1923,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:16,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:16,1--1,1"}
 
 
 Edge
@@ -1937,7 +1937,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:16,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:16,1--1,1"}
 ----
 =to=Node
 =labels=Array(3):
index 33a8156..1c6dabb 100644 (file)
@@ -59,7 +59,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"org","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"org","location":"/dev/null:1,1--1,1"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -89,7 +89,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"org","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"org","location":"/dev/null:1,1--1,1"}
 
 
 Edge
@@ -103,7 +103,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:16,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:16,1--1,1"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -111,7 +111,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:1,1--1,1","name":"A"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:1,1--1,1","name":"A"}
 
 
 Edge
@@ -125,7 +125,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:1,1--1,1","name":"A"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:1,1--1,1","name":"A"}
 ----
 =to=Entity#32:classorg_1_1example_1_1foo_1_1_a
 =labels=Array(3):
@@ -133,7 +133,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"abstract class","visibility":"public","name":"A","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1"}
+{"kind":"abstract class","visibility":"public","name":"A","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1"}
 
 
 Edge
@@ -147,7 +147,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:1,1--1,1","name":"A"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:1,1--1,1","name":"A"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -155,7 +155,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1","is_intro":true,"name":"A"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1","is_intro":true,"name":"A"}
 
 
 Edge
@@ -169,7 +169,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:16,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:16,1--1,1"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -177,7 +177,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:1,1--1,1","name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:1,1--1,1","name":"B"}
 
 
 Edge
@@ -191,7 +191,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:1,1--1,1","name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:1,1--1,1","name":"B"}
 ----
 =to=Entity#32:classorg_1_1example_1_1foo_1_1_b
 =labels=Array(3):
@@ -199,7 +199,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"B","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1"}
+{"kind":"class","visibility":"public","name":"B","location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1"}
 
 
 Edge
@@ -213,7 +213,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:1,1--1,1","name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:1,1--1,1","name":"B"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -221,7 +221,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 
 
 Edge
@@ -235,7 +235,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:16,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:16,1--1,1"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -243,7 +243,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:1,1--1,1","name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:1,1--1,1","name":"C","mdoc":["An interface."]}
 
 
 Edge
@@ -257,7 +257,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:1,1--1,1","name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:1,1--1,1","name":"C","mdoc":["An interface."]}
 ----
 =to=Entity#36:interfaceorg_1_1example_1_1foo_1_1_c
 =labels=Array(3):
@@ -265,7 +265,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface."]}
+{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","mdoc":["An interface."]}
 
 
 Edge
@@ -279,7 +279,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:1,1--1,1","name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:1,1--1,1","name":"C","mdoc":["An interface."]}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -287,7 +287,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
 
 
 Edge
@@ -301,7 +301,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:16,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:16,1--1,1"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -309,7 +309,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:1,1--1,1","name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:1,1--1,1","name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
 
 
 Edge
@@ -323,7 +323,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:1,1--1,1","name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:1,1--1,1","name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
 ----
 =to=Entity#42:classorg_1_1example_1_1foo_1_1_empty_class
 =labels=Array(3):
@@ -331,7 +331,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"package","name":"EmptyClass","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:21,1--21,1","mdoc":["This class is empty and is only visible in this package."]}
+{"kind":"class","visibility":"package","name":"EmptyClass","location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:21,1--21,1","mdoc":["This class is empty and is only visible in this package."]}
 
 
 Edge
@@ -345,7 +345,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:1,1--1,1","name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:1,1--1,1","name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -353,7 +353,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:21,1--21,1","is_intro":true,"name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:21,1--21,1","is_intro":true,"name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
 
 
 Edge
@@ -414,7 +414,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:22,1--1,1","is_intern":false,"is_extern":false,"is_abstract":true,"visibility":"public","name":"bar","mdoc":["Does something..."],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:22,1--1,1","is_intern":false,"is_extern":false,"is_abstract":true,"visibility":"public","name":"bar","mdoc":["Does something..."],"is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -438,7 +438,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:22,1--1,1","is_intern":false,"is_extern":false,"is_abstract":true,"visibility":"public","name":"bar","mdoc":["Does something..."],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:22,1--1,1","is_intern":false,"is_extern":false,"is_abstract":true,"visibility":"public","name":"bar","mdoc":["Does something..."],"is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -577,7 +577,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"abstract class","visibility":"public","name":"A","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1"}
+{"kind":"abstract class","visibility":"public","name":"A","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -609,7 +609,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"abstract class","visibility":"public","name":"A","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1"}
+{"kind":"abstract class","visibility":"public","name":"A","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1"}
 
 
 Edge
@@ -623,7 +623,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1","is_intro":true,"name":"A"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1","is_intro":true,"name":"A"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -646,7 +646,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1","is_intro":true,"name":"A"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1","is_intro":true,"name":"A"}
 ----
 =to=Entity#32:classorg_1_1example_1_1foo_1_1_a
 =labels=Array(3):
@@ -654,7 +654,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"abstract class","visibility":"public","name":"A","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1"}
+{"kind":"abstract class","visibility":"public","name":"A","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1"}
 
 
 Edge
@@ -668,7 +668,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1","is_intro":true,"name":"A"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1","is_intro":true,"name":"A"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -700,7 +700,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1","is_intro":true,"name":"A"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1","is_intro":true,"name":"A"}
 
 
 Edge
@@ -714,7 +714,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:18,1--23,1","is_intro":true,"name":"A"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:18,1--23,1","is_intro":true,"name":"A"}
 ----
 =to=Entity#67:classorg_1_1example_1_1foo_1_1_a_1add415ae4129969055d678c7e7e048852
 =labels=Array(4):
@@ -723,7 +723,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:22,1--1,1","is_intern":false,"is_extern":false,"is_abstract":true,"visibility":"public","name":"bar","mdoc":["Does something..."],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:22,1--1,1","is_intern":false,"is_extern":false,"is_abstract":true,"visibility":"public","name":"bar","mdoc":["Does something..."],"is_intro":true}
 
 
 Edge
@@ -738,7 +738,7 @@ Edge
 8:MPropDef
 13:MAttributeDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:19,1---1,1","visibility":"protected","name":"qux","is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:19,1---1,1","visibility":"protected","name":"qux","is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -762,7 +762,7 @@ Edge
 8:MPropDef
 13:MAttributeDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:19,1---1,1","visibility":"protected","name":"qux","is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:19,1---1,1","visibility":"protected","name":"qux","is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -832,7 +832,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(7):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:21,1--23,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:21,1--23,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -856,7 +856,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(7):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:21,1--23,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:21,1--23,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -996,7 +996,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:28,1--28,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["Some overriden documentation."],"is_intro":false}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:28,1--28,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["Some overriden documentation."],"is_intro":false}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1020,7 +1020,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:28,1--28,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["Some overriden documentation."],"is_intro":false}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:28,1--28,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["Some overriden documentation."],"is_intro":false}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1067,7 +1067,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"B","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1"}
+{"kind":"class","visibility":"public","name":"B","location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1099,7 +1099,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"B","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1"}
+{"kind":"class","visibility":"public","name":"B","location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1"}
 
 
 Edge
@@ -1113,7 +1113,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1136,7 +1136,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 ----
 =to=Entity#32:classorg_1_1example_1_1foo_1_1_b
 =labels=Array(3):
@@ -1144,7 +1144,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"B","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1"}
+{"kind":"class","visibility":"public","name":"B","location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1"}
 
 
 Edge
@@ -1158,7 +1158,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1181,7 +1181,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1204,7 +1204,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1236,7 +1236,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 
 
 Edge
@@ -1250,7 +1250,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 ----
 =to=Entity#67:classorg_1_1example_1_1foo_1_1_b_1ac6b627949b10b9357eefc0cafcae1d87
 =labels=Array(4):
@@ -1259,7 +1259,7 @@ Edge
 8:MPropDef
 13:MAttributeDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:19,1---1,1","visibility":"protected","name":"qux","is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:19,1---1,1","visibility":"protected","name":"qux","is_intro":true}
 
 
 Edge
@@ -1273,7 +1273,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1305,7 +1305,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 
 
 Edge
@@ -1319,7 +1319,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 ----
 =to=Entity#67:classorg_1_1example_1_1foo_1_1_b_1a11e157943665cc9e3a9be1502ebeb3b5
 =labels=Array(4):
@@ -1328,7 +1328,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(7):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:21,1--23,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:21,1--23,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","is_intro":true}
 
 
 Edge
@@ -1342,7 +1342,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:18,1--29,1","is_intro":true,"name":"B"}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:18,1--29,1","is_intro":true,"name":"B"}
 ----
 =to=Entity#67:classorg_1_1example_1_1foo_1_1_b_1a733f4e076f29c7d0c41ed258199ea1d9
 =labels=Array(4):
@@ -1351,7 +1351,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/B.java:28,1--28,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["Some overriden documentation."],"is_intro":false}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/B.java:28,1--28,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["Some overriden documentation."],"is_intro":false}
 
 
 Edge
@@ -1365,7 +1365,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"package","name":"EmptyClass","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:21,1--21,1","mdoc":["This class is empty and is only visible in this package."]}
+{"kind":"class","visibility":"package","name":"EmptyClass","location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:21,1--21,1","mdoc":["This class is empty and is only visible in this package."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1397,7 +1397,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"package","name":"EmptyClass","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:21,1--21,1","mdoc":["This class is empty and is only visible in this package."]}
+{"kind":"class","visibility":"package","name":"EmptyClass","location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:21,1--21,1","mdoc":["This class is empty and is only visible in this package."]}
 
 
 Edge
@@ -1411,7 +1411,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:21,1--21,1","is_intro":true,"name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:21,1--21,1","is_intro":true,"name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1434,7 +1434,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:21,1--21,1","is_intro":true,"name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:21,1--21,1","is_intro":true,"name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]}
 ----
 =to=Entity#42:classorg_1_1example_1_1foo_1_1_empty_class
 =labels=Array(3):
@@ -1442,7 +1442,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"package","name":"EmptyClass","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:21,1--21,1","mdoc":["This class is empty and is only visible in this package."]}
+{"kind":"class","visibility":"package","name":"EmptyClass","location":"%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java:21,1--21,1","mdoc":["This class is empty and is only visible in this package."]}
 
 
 Edge
@@ -1457,7 +1457,7 @@ Edge
 8:MPropDef
 13:MAttributeDef
 =properties=JsonObject(5):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["â\80\9cAnswer to the Ultimate Question of Life, the Universe, and Everything.","â\80\9c"],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["â\80\9cAnswer to the Ultimate Question of Life, the Universe, and Everything.","â\80\9c"],"is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1481,7 +1481,7 @@ Edge
 8:MPropDef
 13:MAttributeDef
 =properties=JsonObject(5):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["â\80\9cAnswer to the Ultimate Question of Life, the Universe, and Everything.","â\80\9c"],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["â\80\9cAnswer to the Ultimate Question of Life, the Universe, and Everything.","â\80\9c"],"is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1505,7 +1505,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:30,1--1,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["A function with implicit modifiers."],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:30,1--1,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["A function with implicit modifiers."],"is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1529,7 +1529,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:30,1--1,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["A function with implicit modifiers."],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:30,1--1,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["A function with implicit modifiers."],"is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1576,7 +1576,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface."]}
+{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","mdoc":["An interface."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1608,7 +1608,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface."]}
+{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","mdoc":["An interface."]}
 
 
 Edge
@@ -1622,7 +1622,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1645,7 +1645,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
 ----
 =to=Entity#36:interfaceorg_1_1example_1_1foo_1_1_c
 =labels=Array(3):
@@ -1653,7 +1653,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface."]}
+{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","mdoc":["An interface."]}
 
 
 Edge
@@ -1667,7 +1667,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1699,7 +1699,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
 
 
 Edge
@@ -1713,7 +1713,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
 ----
 =to=Entity#71:interfaceorg_1_1example_1_1foo_1_1_c_1a4e97061eb40b045e820de05b33c43d21
 =labels=Array(4):
@@ -1722,7 +1722,7 @@ Edge
 8:MPropDef
 13:MAttributeDef
 =properties=JsonObject(5):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["â\80\9cAnswer to the Ultimate Question of Life, the Universe, and Everything.","â\80\9c"],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["â\80\9cAnswer to the Ultimate Question of Life, the Universe, and Everything.","â\80\9c"],"is_intro":true}
 
 
 Edge
@@ -1736,7 +1736,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -1768,7 +1768,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
 
 
 Edge
@@ -1782,7 +1782,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]}
 ----
 =to=Entity#71:interfaceorg_1_1example_1_1foo_1_1_c_1a28ac7ce349ebb3e4a7747a8dd951582b
 =labels=Array(4):
@@ -1791,7 +1791,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:30,1--1,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["A function with implicit modifiers."],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/org/example/foo/C.java:30,1--1,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"baz","mdoc":["A function with implicit modifiers."],"is_intro":true}
 
 
 Edge
@@ -1805,7 +1805,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"org","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"org","location":"/dev/null:1,1--1,1"}
 ----
 =to=Node
 =labels=Array(3):
@@ -1827,7 +1827,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"example","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"example","location":"/dev/null:1,1--1,1"}
 ----
 =to=Entity#12:namespaceorg
 =labels=Array(3):
@@ -1835,7 +1835,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"org","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"org","location":"/dev/null:1,1--1,1"}
 
 
 Edge
@@ -1849,7 +1849,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"org","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"org","location":"/dev/null:1,1--1,1"}
 ----
 =to=Entity#23:namespaceorg_1_1example
 =labels=Array(3):
@@ -1857,7 +1857,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"example","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"example","location":"/dev/null:1,1--1,1"}
 
 
 Edge
@@ -1871,7 +1871,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"example","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"example","location":"/dev/null:1,1--1,1"}
 ----
 =to=Node
 =labels=Array(3):
@@ -1893,7 +1893,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:16,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:16,1--1,1"}
 ----
 =to=Entity#23:namespaceorg_1_1example
 =labels=Array(3):
@@ -1901,7 +1901,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"example","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"example","location":"/dev/null:1,1--1,1"}
 
 
 Edge
@@ -1915,7 +1915,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"example","location":"\/dev\/null:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"example","location":"/dev/null:1,1--1,1"}
 ----
 =to=Entity#30:namespaceorg_1_1example_1_1foo
 =labels=Array(3):
@@ -1923,7 +1923,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:16,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:16,1--1,1"}
 
 
 Edge
@@ -1937,7 +1937,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/A.java:16,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/org/example/foo/A.java:16,1--1,1"}
 ----
 =to=Node
 =labels=Array(3):
index c59297e..295b6a9 100644 (file)
@@ -59,7 +59,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"package","name":"Foo","location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","mdoc":["A class in the root namespace."]}
+{"kind":"class","visibility":"package","name":"Foo","location":"%SOURCE_DIRECTORY%/Foo.java:19,1--19,1","mdoc":["A class in the root namespace."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -91,7 +91,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"package","name":"Foo","location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","mdoc":["A class in the root namespace."]}
+{"kind":"class","visibility":"package","name":"Foo","location":"%SOURCE_DIRECTORY%/Foo.java:19,1--19,1","mdoc":["A class in the root namespace."]}
 
 
 Edge
@@ -105,7 +105,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","is_intro":true,"name":"Foo","mdoc":["A class in the root namespace."]}
+{"location":"%SOURCE_DIRECTORY%/Foo.java:19,1--19,1","is_intro":true,"name":"Foo","mdoc":["A class in the root namespace."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -128,7 +128,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","is_intro":true,"name":"Foo","mdoc":["A class in the root namespace."]}
+{"location":"%SOURCE_DIRECTORY%/Foo.java:19,1--19,1","is_intro":true,"name":"Foo","mdoc":["A class in the root namespace."]}
 ----
 =to=Entity#9:class_foo
 =labels=Array(3):
@@ -136,7 +136,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"package","name":"Foo","location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","mdoc":["A class in the root namespace."]}
+{"kind":"class","visibility":"package","name":"Foo","location":"%SOURCE_DIRECTORY%/Foo.java:19,1--19,1","mdoc":["A class in the root namespace."]}
 
 
 Edge
@@ -158,7 +158,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/Foo.java:1,1--1,1","name":"Foo","mdoc":["A class in the root namespace."]}
+{"location":"%SOURCE_DIRECTORY%/Foo.java:1,1--1,1","name":"Foo","mdoc":["A class in the root namespace."]}
 
 
 Edge
@@ -172,7 +172,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/Foo.java:1,1--1,1","name":"Foo","mdoc":["A class in the root namespace."]}
+{"location":"%SOURCE_DIRECTORY%/Foo.java:1,1--1,1","name":"Foo","mdoc":["A class in the root namespace."]}
 ----
 =to=Entity#9:class_foo
 =labels=Array(3):
@@ -180,7 +180,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"package","name":"Foo","location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","mdoc":["A class in the root namespace."]}
+{"kind":"class","visibility":"package","name":"Foo","location":"%SOURCE_DIRECTORY%/Foo.java:19,1--19,1","mdoc":["A class in the root namespace."]}
 
 
 Edge
@@ -194,7 +194,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/Foo.java:1,1--1,1","name":"Foo","mdoc":["A class in the root namespace."]}
+{"location":"%SOURCE_DIRECTORY%/Foo.java:1,1--1,1","name":"Foo","mdoc":["A class in the root namespace."]}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -202,7 +202,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","is_intro":true,"name":"Foo","mdoc":["A class in the root namespace."]}
+{"location":"%SOURCE_DIRECTORY%/Foo.java:19,1--19,1","is_intro":true,"name":"Foo","mdoc":["A class in the root namespace."]}
 
 
 ---===DONE===---
index ed4bd1d..5328935 100644 (file)
@@ -59,7 +59,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"public","name":"OuterClass","location":"%SOURCE_DIRECTORY%\/OuterClass.java:19,1--24,1","mdoc":["A class with an inner class."]}
+{"kind":"class","visibility":"public","name":"OuterClass","location":"%SOURCE_DIRECTORY%/OuterClass.java:19,1--24,1","mdoc":["A class with an inner class."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -91,7 +91,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"public","name":"OuterClass","location":"%SOURCE_DIRECTORY%\/OuterClass.java:19,1--24,1","mdoc":["A class with an inner class."]}
+{"kind":"class","visibility":"public","name":"OuterClass","location":"%SOURCE_DIRECTORY%/OuterClass.java:19,1--24,1","mdoc":["A class with an inner class."]}
 
 
 Edge
@@ -105,7 +105,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/OuterClass.java:19,1--24,1","is_intro":true,"name":"OuterClass","mdoc":["A class with an inner class."]}
+{"location":"%SOURCE_DIRECTORY%/OuterClass.java:19,1--24,1","is_intro":true,"name":"OuterClass","mdoc":["A class with an inner class."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -128,7 +128,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/OuterClass.java:19,1--24,1","is_intro":true,"name":"OuterClass","mdoc":["A class with an inner class."]}
+{"location":"%SOURCE_DIRECTORY%/OuterClass.java:19,1--24,1","is_intro":true,"name":"OuterClass","mdoc":["A class with an inner class."]}
 ----
 =to=Entity#17:class_outer_class
 =labels=Array(3):
@@ -136,7 +136,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"public","name":"OuterClass","location":"%SOURCE_DIRECTORY%\/OuterClass.java:19,1--24,1","mdoc":["A class with an inner class."]}
+{"kind":"class","visibility":"public","name":"OuterClass","location":"%SOURCE_DIRECTORY%/OuterClass.java:19,1--24,1","mdoc":["A class with an inner class."]}
 
 
 Edge
@@ -150,7 +150,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/OuterClass.java:19,1--24,1","is_intro":true,"name":"OuterClass","mdoc":["A class with an inner class."]}
+{"location":"%SOURCE_DIRECTORY%/OuterClass.java:19,1--24,1","is_intro":true,"name":"OuterClass","mdoc":["A class with an inner class."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -182,7 +182,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/OuterClass.java:19,1--24,1","is_intro":true,"name":"OuterClass","mdoc":["A class with an inner class."]}
+{"location":"%SOURCE_DIRECTORY%/OuterClass.java:19,1--24,1","is_intro":true,"name":"OuterClass","mdoc":["A class with an inner class."]}
 
 
 Edge
@@ -196,7 +196,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/OuterClass.java:19,1--24,1","is_intro":true,"name":"OuterClass","mdoc":["A class with an inner class."]}
+{"location":"%SOURCE_DIRECTORY%/OuterClass.java:19,1--24,1","is_intro":true,"name":"OuterClass","mdoc":["A class with an inner class."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -205,7 +205,7 @@ Edge
 8:MPropDef
 14:MInnerClassDef
 =properties=JsonObject(4):
-{"location":"\/dev\/null:1,1--1,1","name":"InnerClass","visibility":"public","is_intro":true}
+{"location":"/dev/null:1,1--1,1","name":"InnerClass","visibility":"public","is_intro":true}
 
 
 Edge
@@ -220,7 +220,7 @@ Edge
 8:MPropDef
 14:MInnerClassDef
 =properties=JsonObject(4):
-{"location":"\/dev\/null:1,1--1,1","name":"InnerClass","visibility":"public","is_intro":true}
+{"location":"/dev/null:1,1--1,1","name":"InnerClass","visibility":"public","is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -244,7 +244,7 @@ Edge
 8:MPropDef
 14:MInnerClassDef
 =properties=JsonObject(4):
-{"location":"\/dev\/null:1,1--1,1","name":"InnerClass","visibility":"public","is_intro":true}
+{"location":"/dev/null:1,1--1,1","name":"InnerClass","visibility":"public","is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -252,7 +252,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/OuterClass.java:23,1--23,1","is_intro":true,"name":"OuterClass::InnerClass","mdoc":["An instance (non-static) inner class."]}
+{"location":"%SOURCE_DIRECTORY%/OuterClass.java:23,1--23,1","is_intro":true,"name":"OuterClass::InnerClass","mdoc":["An instance (non-static) inner class."]}
 
 
 Edge
@@ -275,7 +275,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"public","name":"OuterClass::InnerClass","location":"%SOURCE_DIRECTORY%\/OuterClass.java:23,1--23,1","mdoc":["An instance (non-static) inner class."]}
+{"kind":"class","visibility":"public","name":"OuterClass::InnerClass","location":"%SOURCE_DIRECTORY%/OuterClass.java:23,1--23,1","mdoc":["An instance (non-static) inner class."]}
 
 
 Edge
@@ -289,7 +289,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"public","name":"OuterClass::InnerClass","location":"%SOURCE_DIRECTORY%\/OuterClass.java:23,1--23,1","mdoc":["An instance (non-static) inner class."]}
+{"kind":"class","visibility":"public","name":"OuterClass::InnerClass","location":"%SOURCE_DIRECTORY%/OuterClass.java:23,1--23,1","mdoc":["An instance (non-static) inner class."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -321,7 +321,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"public","name":"OuterClass::InnerClass","location":"%SOURCE_DIRECTORY%\/OuterClass.java:23,1--23,1","mdoc":["An instance (non-static) inner class."]}
+{"kind":"class","visibility":"public","name":"OuterClass::InnerClass","location":"%SOURCE_DIRECTORY%/OuterClass.java:23,1--23,1","mdoc":["An instance (non-static) inner class."]}
 
 
 Edge
@@ -335,7 +335,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/OuterClass.java:23,1--23,1","is_intro":true,"name":"OuterClass::InnerClass","mdoc":["An instance (non-static) inner class."]}
+{"location":"%SOURCE_DIRECTORY%/OuterClass.java:23,1--23,1","is_intro":true,"name":"OuterClass::InnerClass","mdoc":["An instance (non-static) inner class."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -358,7 +358,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/OuterClass.java:23,1--23,1","is_intro":true,"name":"OuterClass::InnerClass","mdoc":["An instance (non-static) inner class."]}
+{"location":"%SOURCE_DIRECTORY%/OuterClass.java:23,1--23,1","is_intro":true,"name":"OuterClass::InnerClass","mdoc":["An instance (non-static) inner class."]}
 ----
 =to=Entity#33:class_outer_class_1_1_inner_class
 =labels=Array(3):
@@ -366,7 +366,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"public","name":"OuterClass::InnerClass","location":"%SOURCE_DIRECTORY%\/OuterClass.java:23,1--23,1","mdoc":["An instance (non-static) inner class."]}
+{"kind":"class","visibility":"public","name":"OuterClass::InnerClass","location":"%SOURCE_DIRECTORY%/OuterClass.java:23,1--23,1","mdoc":["An instance (non-static) inner class."]}
 
 
 Edge
@@ -388,7 +388,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/OuterClass.java:1,1--1,1","name":"OuterClass"}
+{"location":"%SOURCE_DIRECTORY%/OuterClass.java:1,1--1,1","name":"OuterClass"}
 
 
 Edge
@@ -402,7 +402,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/OuterClass.java:1,1--1,1","name":"OuterClass"}
+{"location":"%SOURCE_DIRECTORY%/OuterClass.java:1,1--1,1","name":"OuterClass"}
 ----
 =to=Entity#17:class_outer_class
 =labels=Array(3):
@@ -410,7 +410,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"public","name":"OuterClass","location":"%SOURCE_DIRECTORY%\/OuterClass.java:19,1--24,1","mdoc":["A class with an inner class."]}
+{"kind":"class","visibility":"public","name":"OuterClass","location":"%SOURCE_DIRECTORY%/OuterClass.java:19,1--24,1","mdoc":["A class with an inner class."]}
 
 
 Edge
@@ -424,7 +424,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/OuterClass.java:1,1--1,1","name":"OuterClass"}
+{"location":"%SOURCE_DIRECTORY%/OuterClass.java:1,1--1,1","name":"OuterClass"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -432,7 +432,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/OuterClass.java:19,1--24,1","is_intro":true,"name":"OuterClass","mdoc":["A class with an inner class."]}
+{"location":"%SOURCE_DIRECTORY%/OuterClass.java:19,1--24,1","is_intro":true,"name":"OuterClass","mdoc":["A class with an inner class."]}
 
 
 Edge
@@ -446,7 +446,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/OuterClass.java:1,1--1,1","name":"OuterClass"}
+{"location":"%SOURCE_DIRECTORY%/OuterClass.java:1,1--1,1","name":"OuterClass"}
 ----
 =to=Entity#33:class_outer_class_1_1_inner_class
 =labels=Array(3):
@@ -454,7 +454,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"public","name":"OuterClass::InnerClass","location":"%SOURCE_DIRECTORY%\/OuterClass.java:23,1--23,1","mdoc":["An instance (non-static) inner class."]}
+{"kind":"class","visibility":"public","name":"OuterClass::InnerClass","location":"%SOURCE_DIRECTORY%/OuterClass.java:23,1--23,1","mdoc":["An instance (non-static) inner class."]}
 
 
 Edge
@@ -468,7 +468,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/OuterClass.java:1,1--1,1","name":"OuterClass"}
+{"location":"%SOURCE_DIRECTORY%/OuterClass.java:1,1--1,1","name":"OuterClass"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -476,7 +476,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"%SOURCE_DIRECTORY%\/OuterClass.java:23,1--23,1","is_intro":true,"name":"OuterClass::InnerClass","mdoc":["An instance (non-static) inner class."]}
+{"location":"%SOURCE_DIRECTORY%/OuterClass.java:23,1--23,1","is_intro":true,"name":"OuterClass::InnerClass","mdoc":["An instance (non-static) inner class."]}
 
 
 ---===DONE===---
index b311247..5b3cfe7 100644 (file)
@@ -59,7 +59,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -89,7 +89,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1"}
 
 
 Edge
@@ -103,7 +103,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -111,7 +111,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1","name":"foo"}
+{"location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1","name":"foo"}
 
 
 Edge
@@ -125,7 +125,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1","name":"foo"}
+{"location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1","name":"foo"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -133,7 +133,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"(self)","location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1"}
+{"kind":"class","visibility":"public","name":"(self)","location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1"}
 
 
 Edge
@@ -147,7 +147,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1","name":"foo"}
+{"location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1","name":"foo"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -155,7 +155,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
+{"location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
 
 
 Edge
@@ -170,7 +170,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:16,1--20,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","mdoc":["A bar function in the foo namespace.","By default, Doxygen recognizes anything in the docstrings as verbatim\ndetailed description."],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/foo.py:16,1--20,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","mdoc":["A bar function in the foo namespace.","By default, Doxygen recognizes anything in the docstrings as verbatim\ndetailed description."],"is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -194,7 +194,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:16,1--20,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","mdoc":["A bar function in the foo namespace.","By default, Doxygen recognizes anything in the docstrings as verbatim\ndetailed description."],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/foo.py:16,1--20,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","mdoc":["A bar function in the foo namespace.","By default, Doxygen recognizes anything in the docstrings as verbatim\ndetailed description."],"is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -241,7 +241,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1"}
 ----
 =to=Node
 =labels=Array(3):
@@ -263,7 +263,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"(self)","location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1"}
+{"kind":"class","visibility":"public","name":"(self)","location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -295,7 +295,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"(self)","location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1"}
+{"kind":"class","visibility":"public","name":"(self)","location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1"}
 
 
 Edge
@@ -309,7 +309,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
+{"location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -332,7 +332,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
+{"location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -340,7 +340,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"(self)","location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1"}
+{"kind":"class","visibility":"public","name":"(self)","location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1"}
 
 
 Edge
@@ -354,7 +354,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
+{"location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -386,7 +386,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
+{"location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
 
 
 Edge
@@ -400,7 +400,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
+{"location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
 ----
 =to=Entity#47:namespacefoo_1aab1e88a2212b202c20f3c9bd799a1ad4
 =labels=Array(4):
@@ -409,7 +409,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:16,1--20,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","mdoc":["A bar function in the foo namespace.","By default, Doxygen recognizes anything in the docstrings as verbatim\ndetailed description."],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/foo.py:16,1--20,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","mdoc":["A bar function in the foo namespace.","By default, Doxygen recognizes anything in the docstrings as verbatim\ndetailed description."],"is_intro":true}
 
 
 ---===DONE===---
index 1c9cc04..82cd35b 100644 (file)
@@ -59,7 +59,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -89,7 +89,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1"}
 
 
 Edge
@@ -103,7 +103,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -111,7 +111,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1","name":"foo"}
+{"location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1","name":"foo"}
 
 
 Edge
@@ -125,7 +125,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1","name":"foo"}
+{"location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1","name":"foo"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -133,7 +133,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"(self)","location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1"}
+{"kind":"class","visibility":"public","name":"(self)","location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1"}
 
 
 Edge
@@ -147,7 +147,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(2):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1","name":"foo"}
+{"location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1","name":"foo"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -155,7 +155,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
+{"location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
 
 
 Edge
@@ -170,7 +170,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:16,1--20,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","mdoc":["A bar function in the foo namespace.","By default, Doxygen recognizes anything in the docstrings as verbatim\ndetailed description."],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/foo.py:16,1--20,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","mdoc":["A bar function in the foo namespace.","By default, Doxygen recognizes anything in the docstrings as verbatim\ndetailed description."],"is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -194,7 +194,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:16,1--20,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","mdoc":["A bar function in the foo namespace.","By default, Doxygen recognizes anything in the docstrings as verbatim\ndetailed description."],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/foo.py:16,1--20,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","mdoc":["A bar function in the foo namespace.","By default, Doxygen recognizes anything in the docstrings as verbatim\ndetailed description."],"is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -217,7 +217,7 @@ Edge
 7:MEntity
 6:MGroup
 =properties=JsonObject(4):
-{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1"}
+{"kind":"namespace","visibility":"","name":"foo","location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1"}
 ----
 =to=Node
 =labels=Array(3):
@@ -239,7 +239,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"(self)","location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1"}
+{"kind":"class","visibility":"public","name":"(self)","location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -271,7 +271,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"(self)","location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1"}
+{"kind":"class","visibility":"public","name":"(self)","location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1"}
 
 
 Edge
@@ -285,7 +285,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
+{"location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -308,7 +308,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
+{"location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -316,7 +316,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"(self)","location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1"}
+{"kind":"class","visibility":"public","name":"(self)","location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1"}
 
 
 Edge
@@ -330,7 +330,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
+{"location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -362,7 +362,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
+{"location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
 
 
 Edge
@@ -376,7 +376,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
+{"location":"%SOURCE_DIRECTORY%/foo.py:1,1--1,1","is_intro":true,"name":"(self)"}
 ----
 =to=Entity#47:namespacefoo_1aab1e88a2212b202c20f3c9bd799a1ad4
 =labels=Array(4):
@@ -385,7 +385,7 @@ Edge
 8:MPropDef
 10:MMethodDef
 =properties=JsonObject(8):
-{"location":"%SOURCE_DIRECTORY%\/foo.py:16,1--20,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","mdoc":["A bar function in the foo namespace.","By default, Doxygen recognizes anything in the docstrings as verbatim\ndetailed description."],"is_intro":true}
+{"location":"%SOURCE_DIRECTORY%/foo.py:16,1--20,1","is_intern":false,"is_extern":false,"is_abstract":false,"visibility":"public","name":"bar","mdoc":["A bar function in the foo namespace.","By default, Doxygen recognizes anything in the docstrings as verbatim\ndetailed description."],"is_intro":true}
 
 
 ---===DONE===---
index 740393b..16e541c 100644 (file)
@@ -187,7 +187,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]}
+{"location":"a/b/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]}
 
 Edge
 =type=10:INTRODUCES
@@ -200,7 +200,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]}
+{"location":"a/b/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]}
 ----
 =to=Entity#12:classa_b_bar
 =labels=Array(3):
@@ -208,7 +208,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"Bar","location":"a\/b\/Bar.class:5,1--100,10"}
+{"kind":"class","visibility":"public","name":"Bar","location":"a/b/Bar.class:5,1--100,10"}
 
 Edge
 =type=7:DEFINES
@@ -221,7 +221,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]}
+{"location":"a/b/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -229,7 +229,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"a\/b\/Bar.class:5,1--100,10","is_intro":true,"name":"Bar"}
+{"location":"a/b/Bar.class:5,1--100,10","is_intro":true,"name":"Bar"}
 
 Edge
 =type=8:DECLARES
@@ -284,7 +284,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"Bar","location":"a\/b\/Bar.class:5,1--100,10"}
+{"kind":"class","visibility":"public","name":"Bar","location":"a/b/Bar.class:5,1--100,10"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -315,7 +315,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"Bar","location":"a\/b\/Bar.class:5,1--100,10"}
+{"kind":"class","visibility":"public","name":"Bar","location":"a/b/Bar.class:5,1--100,10"}
 
 Edge
 =type=9:BOUNDTYPE
@@ -328,7 +328,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"a\/b\/Bar.class:5,1--100,10","is_intro":true,"name":"Bar"}
+{"location":"a/b/Bar.class:5,1--100,10","is_intro":true,"name":"Bar"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -350,7 +350,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"a\/b\/Bar.class:5,1--100,10","is_intro":true,"name":"Bar"}
+{"location":"a/b/Bar.class:5,1--100,10","is_intro":true,"name":"Bar"}
 ----
 =to=Entity#12:classa_b_bar
 =labels=Array(3):
@@ -358,7 +358,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"Bar","location":"a\/b\/Bar.class:5,1--100,10"}
+{"kind":"class","visibility":"public","name":"Bar","location":"a/b/Bar.class:5,1--100,10"}
 
 Edge
 =type=9:CLASSTYPE
@@ -763,7 +763,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]}
+{"location":"a/b/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]}
 
 Edge
 =type=10:INTRODUCES
@@ -776,7 +776,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]}
+{"location":"a/b/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]}
 ----
 =to=Entity#12:classa_b_bar
 =labels=Array(3):
@@ -784,7 +784,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"Bar","location":"a\/b\/Bar.class:5,1--100,10"}
+{"kind":"class","visibility":"public","name":"Bar","location":"a/b/Bar.class:5,1--100,10"}
 
 Edge
 =type=7:DEFINES
@@ -797,7 +797,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]}
+{"location":"a/b/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -805,7 +805,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"a\/b\/Bar.class:5,1--100,10","is_intro":true,"name":"Bar"}
+{"location":"a/b/Bar.class:5,1--100,10","is_intro":true,"name":"Bar"}
 
 Edge
 =type=8:DECLARES
@@ -860,7 +860,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"Bar","location":"a\/b\/Bar.class:5,1--100,10"}
+{"kind":"class","visibility":"public","name":"Bar","location":"a/b/Bar.class:5,1--100,10"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -891,7 +891,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"Bar","location":"a\/b\/Bar.class:5,1--100,10"}
+{"kind":"class","visibility":"public","name":"Bar","location":"a/b/Bar.class:5,1--100,10"}
 
 Edge
 =type=9:BOUNDTYPE
@@ -904,7 +904,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"a\/b\/Bar.class:5,1--100,10","is_intro":true,"name":"Bar"}
+{"location":"a/b/Bar.class:5,1--100,10","is_intro":true,"name":"Bar"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -926,7 +926,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(3):
-{"location":"a\/b\/Bar.class:5,1--100,10","is_intro":true,"name":"Bar"}
+{"location":"a/b/Bar.class:5,1--100,10","is_intro":true,"name":"Bar"}
 ----
 =to=Entity#12:classa_b_bar
 =labels=Array(3):
@@ -934,7 +934,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(4):
-{"kind":"class","visibility":"public","name":"Bar","location":"a\/b\/Bar.class:5,1--100,10"}
+{"kind":"class","visibility":"public","name":"Bar","location":"a/b/Bar.class:5,1--100,10"}
 
 Edge
 =type=9:CLASSTYPE
@@ -1168,7 +1168,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]}
+{"location":"a/b/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]}
 
 Edge
 =type=10:INTRODUCES
@@ -1181,7 +1181,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]}
+{"location":"a/b/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]}
 ----
 =to=Entity#8:classbaz
 =labels=Array(3):
@@ -1202,7 +1202,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]}
+{"location":"a/b/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]}
 ----
 =to=Entity#0:
 =labels=Array(3):
index 753a400..bdaae56 100644 (file)
@@ -102,7 +102,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"\/dev\/null:1,1--1,1","name":"foo","mdoc":["A documented namespace."]}
+{"location":"/dev/null:1,1--1,1","name":"foo","mdoc":["A documented namespace."]}
 
 Edge
 =type=10:INTRODUCES
@@ -115,7 +115,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"\/dev\/null:1,1--1,1","name":"foo","mdoc":["A documented namespace."]}
+{"location":"/dev/null:1,1--1,1","name":"foo","mdoc":["A documented namespace."]}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -123,7 +123,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"public","name":"(self)","mdoc":["A documented namespace."],"location":"\/dev\/null:1,1--1,1"}
+{"kind":"class","visibility":"public","name":"(self)","mdoc":["A documented namespace."],"location":"/dev/null:1,1--1,1"}
 
 Edge
 =type=7:DEFINES
@@ -136,7 +136,7 @@ Edge
 7:MEntity
 7:MModule
 =properties=JsonObject(3):
-{"location":"\/dev\/null:1,1--1,1","name":"foo","mdoc":["A documented namespace."]}
+{"location":"/dev/null:1,1--1,1","name":"foo","mdoc":["A documented namespace."]}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -144,7 +144,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"\/dev\/null:1,1--1,1","is_intro":true,"name":"(self)","mdoc":["A documented namespace."]}
+{"location":"/dev/null:1,1--1,1","is_intro":true,"name":"(self)","mdoc":["A documented namespace."]}
 
 Edge
 =type=7:DEFINES
@@ -158,7 +158,7 @@ Edge
 8:MPropDef
 13:MAttributeDef
 =properties=JsonObject(3):
-{"location":"\/dev\/null:1,1--1,1","name":"bar","is_intro":true}
+{"location":"/dev/null:1,1--1,1","name":"bar","is_intro":true}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -201,7 +201,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"public","name":"(self)","mdoc":["A documented namespace."],"location":"\/dev\/null:1,1--1,1"}
+{"kind":"class","visibility":"public","name":"(self)","mdoc":["A documented namespace."],"location":"/dev/null:1,1--1,1"}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -232,7 +232,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"public","name":"(self)","mdoc":["A documented namespace."],"location":"\/dev\/null:1,1--1,1"}
+{"kind":"class","visibility":"public","name":"(self)","mdoc":["A documented namespace."],"location":"/dev/null:1,1--1,1"}
 
 Edge
 =type=9:BOUNDTYPE
@@ -245,7 +245,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"\/dev\/null:1,1--1,1","is_intro":true,"name":"(self)","mdoc":["A documented namespace."]}
+{"location":"/dev/null:1,1--1,1","is_intro":true,"name":"(self)","mdoc":["A documented namespace."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -267,7 +267,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"\/dev\/null:1,1--1,1","is_intro":true,"name":"(self)","mdoc":["A documented namespace."]}
+{"location":"/dev/null:1,1--1,1","is_intro":true,"name":"(self)","mdoc":["A documented namespace."]}
 ----
 =to=Entity#0:
 =labels=Array(3):
@@ -275,7 +275,7 @@ Edge
 7:MEntity
 6:MClass
 =properties=JsonObject(5):
-{"kind":"class","visibility":"public","name":"(self)","mdoc":["A documented namespace."],"location":"\/dev\/null:1,1--1,1"}
+{"kind":"class","visibility":"public","name":"(self)","mdoc":["A documented namespace."],"location":"/dev/null:1,1--1,1"}
 
 Edge
 =type=10:INTRODUCES
@@ -288,7 +288,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"\/dev\/null:1,1--1,1","is_intro":true,"name":"(self)","mdoc":["A documented namespace."]}
+{"location":"/dev/null:1,1--1,1","is_intro":true,"name":"(self)","mdoc":["A documented namespace."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -319,7 +319,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"\/dev\/null:1,1--1,1","is_intro":true,"name":"(self)","mdoc":["A documented namespace."]}
+{"location":"/dev/null:1,1--1,1","is_intro":true,"name":"(self)","mdoc":["A documented namespace."]}
 
 Edge
 =type=8:DECLARES
@@ -332,7 +332,7 @@ Edge
 7:MEntity
 9:MClassDef
 =properties=JsonObject(4):
-{"location":"\/dev\/null:1,1--1,1","is_intro":true,"name":"(self)","mdoc":["A documented namespace."]}
+{"location":"/dev/null:1,1--1,1","is_intro":true,"name":"(self)","mdoc":["A documented namespace."]}
 ----
 =to=Entity#0:
 =labels=Array(4):
@@ -341,6 +341,6 @@ Edge
 8:MPropDef
 13:MAttributeDef
 =properties=JsonObject(3):
-{"location":"\/dev\/null:1,1--1,1","name":"bar","is_intro":true}
+{"location":"/dev/null:1,1--1,1","name":"bar","is_intro":true}
 
 
index 26c7d16..7d9b1ab 100644 (file)
@@ -30,7 +30,7 @@
 <- false p4ssw0rd> 1111        f"\r\/> true>
 
 # Json:
-{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "ii": 1111, "ss": "\tf\"\r\\\/", "d": {"__kind": "ref", "__id": 0}}
+{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "ii": 1111, "ss": "\tf\"\r\\/", "d": {"__kind": "ref", "__id": 0}}
 
 # Back in Nit:
 <D: <B: <A: false b 123.123 2345 new line ->
index dc752fc..38a1cb2 100644 (file)
@@ -21,5 +21,5 @@
 <- false> 1111         f"\r\/> true>
 
 # Json:
-{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\\/", "d": {"__kind": "ref", "__id": 0}}
+{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\/", "d": {"__kind": "ref", "__id": 0}}
 
index cb8b0a6..26a805a 100644 (file)
@@ -22,5 +22,5 @@ alt/test_serialization_alt4.nit:29,2--31,26: Warning: superfluous use of `serial
 <- false> 1111         f"\r\/> true>
 
 # Json:
-{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\\/", "d": {"__kind": "ref", "__id": 0}}
+{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\/", "d": {"__kind": "ref", "__id": 0}}
 
index cc524cb..ba3196e 100644 (file)
@@ -22,5 +22,5 @@ alt/test_serialization_alt5.nit:22,1--38,3: Warning: duplicated annotation `seri
 <- false> 1111         f"\r\/> true>
 
 # Json:
-{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\\/", "d": {"__kind": "ref", "__id": 0}}
+{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\/", "d": {"__kind": "ref", "__id": 0}}
 
index dc752fc..38a1cb2 100644 (file)
@@ -21,5 +21,5 @@
 <- false> 1111         f"\r\/> true>
 
 # Json:
-{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\\/", "d": {"__kind": "ref", "__id": 0}}
+{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\/", "d": {"__kind": "ref", "__id": 0}}
 
index 80a5ae4..d380e42 100644 (file)
@@ -21,5 +21,5 @@
 <- false> 1111         f"\r\/> true>
 
 # Json:
-{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array", "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef", "ii": 1111, "ss": "\tf\"\r\\\/", "d": {"__kind": "ref", "__id": 0}}
+{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array", "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef", "ii": 1111, "ss": "\tf\"\r\\/", "d": {"__kind": "ref", "__id": 0}}
 
index 95ef8dc..4e37506 100644 (file)
@@ -21,5 +21,5 @@
 <- false> 1111         f"\r\/> true>
 
 # Json:
-{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\\/", "ffff": 6.789, "bbbb": false, "d": {"__kind": "ref", "__id": 0}}
+{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\/", "ffff": 6.789, "bbbb": false, "d": {"__kind": "ref", "__id": 0}}
 
index db11443..106a664 100644 (file)
@@ -21,5 +21,5 @@
 <- false> 1111         f"\r\/> true>
 
 # Json:
-{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array", "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef", "ii": 1111, "ss": "\tf\"\r\\\/", "ffff": 6.789, "bbbb": false, "d": {"__kind": "ref", "__id": 0}}
+{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array", "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef", "ii": 1111, "ss": "\tf\"\r\\/", "ffff": 6.789, "bbbb": false, "d": {"__kind": "ref", "__id": 0}}
 
diff --git a/tests/sav/test_adhoc_json_parse.res b/tests/sav/test_adhoc_json_parse.res
new file mode 100644 (file)
index 0000000..63330b4
--- /dev/null
@@ -0,0 +1 @@
+Usage ./test_adhoc_json_parser file
diff --git a/tests/sav/test_adhoc_json_parse_args1.res b/tests/sav/test_adhoc_json_parse_args1.res
new file mode 100644 (file)
index 0000000..2e9d00b
--- /dev/null
@@ -0,0 +1,20 @@
+[{
+       "precision": "zip",
+       "Latitude": 37.767,
+       "Longitude": -122.396,
+       "Address": "",
+       "City": "SANFRANCISCO",
+       "State": "CA",
+       "Zip": "94107",
+       "Country": "US"
+}, {
+       "precision": "zip",
+       "Latitude": 37.372,
+       "Longitude": -122.026,
+       "Address": "",
+       "City": "SUNNYVALE",
+       "State": "CA",
+       "Zip": "94085",
+       "Country": "US"
+}]
+
index 85e97e6..9d2321b 100644 (file)
@@ -30,7 +30,7 @@
 <- false p4ssw0rd> 1111        f"\r\/> true>
 
 # Json:
-{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "ii": 1111, "ss": "\tf\"\r\\\/", "d": {"__kind": "ref", "__id": 0}}
+{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "ii": 1111, "ss": "\tf\"\r\\/", "d": {"__kind": "ref", "__id": 0}}
 
 # Back in Nit:
 <D: <B: <A: false b 123.123 2345 new line ->
index e7e3801..1c2f960 100644 (file)
@@ -30,7 +30,7 @@
 <- false p4ssw0rd> 1111        f"\r\/> true>
 
 # Json:
-{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "ii": 1111, "ss": "\tf\"\r\\\/", "d": {"__kind": "ref", "__id": 0}}
+{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "ii": 1111, "ss": "\tf\"\r\\/", "d": {"__kind": "ref", "__id": 0}}
 
 # Back in Nit:
 <D: <B: <A: false b 123.123 2345 new line ->
index c4efd5f..ada4bc7 100644 (file)
@@ -21,7 +21,7 @@
 <- false p4ssw0rd> 1111        f"\r\/> true>
 
 # Json:
-{"b": false, "c": "b", "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "ii": 1111, "ss": "\tf\"\r\\\/", "d": null}
+{"b": false, "c": "b", "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "ii": 1111, "ss": "\tf\"\r\\/", "d": null}
 
 # Nit:
 <E: a: hello, 1234, 123.4; b: hella, 2345, 234.5>
index 3bd16a6..29b474e 100644 (file)
@@ -21,5 +21,5 @@
 <- false> 1111         f"\r\/> true>
 
 # Json:
-{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array[nullable Object]", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\\/", "d": {"__kind": "ref", "__id": 0}}
+{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array[nullable Object]", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\/", "d": {"__kind": "ref", "__id": 0}}
 
index 81309e9..4fa0577 100644 (file)
@@ -21,5 +21,5 @@
 <- false> 1111         f"\r\/> true>
 
 # Json:
-{"b": false, "c": "b", "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": [88, "hello", null], "ii": 1111, "ss": "\tf\"\r\\\/", "d": null}
+{"b": false, "c": "b", "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": [88, "hello", null], "ii": 1111, "ss": "\tf\"\r\\/", "d": null}
 
index 854e2af..1d9be55 100644 (file)
@@ -22,5 +22,5 @@ alt/test_serialization_alt4.nit:29,2--31,26: Warning: superfluous use of `serial
 <- false> 1111         f"\r\/> true>
 
 # Json:
-{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array[nullable Object]", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\\/", "d": {"__kind": "ref", "__id": 0}}
+{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array[nullable Object]", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\/", "d": {"__kind": "ref", "__id": 0}}
 
index e579168..be11dba 100644 (file)
@@ -22,5 +22,5 @@ alt/test_serialization_alt5.nit:22,1--38,3: Warning: duplicated annotation `seri
 <- false> 1111         f"\r\/> true>
 
 # Json:
-{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array[nullable Object]", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\\/", "d": {"__kind": "ref", "__id": 0}}
+{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array[nullable Object]", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\/", "d": {"__kind": "ref", "__id": 0}}
 
index 3bd16a6..29b474e 100644 (file)
@@ -21,5 +21,5 @@
 <- false> 1111         f"\r\/> true>
 
 # Json:
-{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array[nullable Object]", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\\/", "d": {"__kind": "ref", "__id": 0}}
+{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array[nullable Object]", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\/", "d": {"__kind": "ref", "__id": 0}}
 
index aa3d561..4c298df 100644 (file)
@@ -21,5 +21,5 @@
 <- false> 1111         f"\r\/> true>
 
 # Json:
-{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array[nullable Object]", "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef", "ii": 1111, "ss": "\tf\"\r\\\/", "d": {"__kind": "ref", "__id": 0}}
+{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array[nullable Object]", "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef", "ii": 1111, "ss": "\tf\"\r\\/", "d": {"__kind": "ref", "__id": 0}}
 
index 776db44..6e79e63 100644 (file)
@@ -21,5 +21,5 @@
 <- false> 1111         f"\r\/> true>
 
 # Json:
-{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array[nullable Object]", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\\/", "ffff": 6.789, "bbbb": false, "d": {"__kind": "ref", "__id": 0}}
+{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array[nullable Object]", "__items": [88, "hello", null]}, "ii": 1111, "ss": "\tf\"\r\\/", "ffff": 6.789, "bbbb": false, "d": {"__kind": "ref", "__id": 0}}
 
index ae7256f..e52136f 100644 (file)
@@ -21,5 +21,5 @@
 <- false> 1111         f"\r\/> true>
 
 # Json:
-{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array[nullable Object]", "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef", "ii": 1111, "ss": "\tf\"\r\\\/", "ffff": 6.789, "bbbb": false, "d": {"__kind": "ref", "__id": 0}}
+{"__kind": "obj", "__id": 0, "__class": "D", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "new line ->\n<-", "n": null, "array": {"__kind": "obj", "__id": 1, "__class": "Array[nullable Object]", "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef", "ii": 1111, "ss": "\tf\"\r\\/", "ffff": 6.789, "bbbb": false, "d": {"__kind": "ref", "__id": 0}}
 
diff --git a/tests/test_adhoc_json_parse.args b/tests/test_adhoc_json_parse.args
new file mode 100644 (file)
index 0000000..dd8ac38
--- /dev/null
@@ -0,0 +1 @@
+json_example.json
diff --git a/tests/test_adhoc_json_parse.nit b/tests/test_adhoc_json_parse.nit
new file mode 100644 (file)
index 0000000..68e4850
--- /dev/null
@@ -0,0 +1,27 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import json::string_parser
+import json
+
+if args.length < 1 then
+       print "Usage ./test_adhoc_json_parser file"
+       exit -1
+end
+var parse = args[0].to_path.read_all.parse_json
+if parse == null then
+       print "null"
+else
+       print parse.to_pretty_json
+end