annotate R/scratch/test_json.R @ 54:918dab7a6606

- added callback support (comes with some bigger refactoring) - allow CPython's Py{CObject,Capsule} to be used as 'p'ointers
author Tassilo Philipp
date Tue, 02 Feb 2021 20:42:02 +0100
parents 0cfcc391201f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
1 library(rjson)
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
2
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
3 parseJSON <- function(path)
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
4 {
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
5 parser <- newJSONParser()
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
6 f <- file(path)
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
7 open(f)
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
8 while(TRUE)
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
9 {
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
10 aLine <- readLines(f, 1)
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
11 if (length(aLine) == 0) break
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
12 parser$addData( aLine )
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
13 }
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
14 close(f)
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
15 parser$getObject()
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
16 }
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
17 # TEST:
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
18 testfile <- "/lab/eclipse/dyncall/rdyncall/inst/dynports/GL.json"
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
19 x <- parseJSON(testfile)
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
20 # print(glinfo)