annotate src/luan/modules/Parsers.luan @ 1802:ca98dee04e08 default tip

add Parsers.json_null
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 21 Apr 2024 21:25:15 -0600
parents f8f5c51f5b36
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1353
8d95711f6615 replace java() with require "java"
Franklin Schmidt <fschmidt@gmail.com>
parents: 1261
diff changeset
1 require "java"
1712
36c28be6d432 improve html and bbcode
Franklin Schmidt <fschmidt@gmail.com>
parents: 1705
diff changeset
2 local BBCode = require "java:goodjava.bbcode.BBCode"
1702
8ad468cc88d4 add goodjava/bbcode
Franklin Schmidt <fschmidt@gmail.com>
parents: 1595
diff changeset
3 local BBCodeLuan = require "java:luan.modules.parsers.BBCodeLuan"
585
bb3818249dfb add Parsers
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
4 local Csv = require "java:luan.modules.parsers.Csv"
687
fc08c3b42010 add theme_to_luan
Franklin Schmidt <fschmidt@gmail.com>
parents: 585
diff changeset
5 local Theme = require "java:luan.modules.parsers.Theme"
1466
670b7d089699 xml support
Franklin Schmidt <fschmidt@gmail.com>
parents: 1419
diff changeset
6 local Xml = require "java:luan.modules.parsers.Xml"
1791
f8f5c51f5b36 xml work
Franklin Schmidt <fschmidt@gmail.com>
parents: 1775
diff changeset
7 local Xml2 = require "java:luan.modules.parsers.Xml2"
1469
Franklin Schmidt <fschmidt@gmail.com>
parents: 1466
diff changeset
8 local XmlElement = require "java:goodjava.xml.XmlElement"
1419
59fd2e8b1b9d stringify and json_string
Franklin Schmidt <fschmidt@gmail.com>
parents: 1402
diff changeset
9 local BasicLuan = require "java:luan.modules.BasicLuan"
585
bb3818249dfb add Parsers
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
10
1112
490f77bb2ad1 add JsonParser
Franklin Schmidt <fschmidt@gmail.com>
parents: 1088
diff changeset
11
1088
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 794
diff changeset
12 local Parsers = {}
585
bb3818249dfb add Parsers
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
13
1712
36c28be6d432 improve html and bbcode
Franklin Schmidt <fschmidt@gmail.com>
parents: 1705
diff changeset
14 Parsers.bbcode_encode = BBCode.encode
1705
a6e27c8e7ef4 bbcode now returns data
Franklin Schmidt <fschmidt@gmail.com>
parents: 1702
diff changeset
15 Parsers.bbcode_parse = BBCodeLuan.parse
1088
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 794
diff changeset
16 Parsers.csv_to_list = Csv.toList
1802
ca98dee04e08 add Parsers.json_null
Franklin Schmidt <fschmidt@gmail.com>
parents: 1791
diff changeset
17 Parsers.json_null = BasicLuan.json_null
1419
59fd2e8b1b9d stringify and json_string
Franklin Schmidt <fschmidt@gmail.com>
parents: 1402
diff changeset
18 Parsers.json_string = BasicLuan.json_string
1088
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 794
diff changeset
19 Parsers.theme_to_luan = Theme.toLuan
1469
Franklin Schmidt <fschmidt@gmail.com>
parents: 1466
diff changeset
20 Parsers.xml_encode = XmlElement.encode
1466
670b7d089699 xml support
Franklin Schmidt <fschmidt@gmail.com>
parents: 1419
diff changeset
21 Parsers.xml_parse = Xml.parse
670b7d089699 xml support
Franklin Schmidt <fschmidt@gmail.com>
parents: 1419
diff changeset
22 Parsers.xml_string = Xml.toString
1791
f8f5c51f5b36 xml work
Franklin Schmidt <fschmidt@gmail.com>
parents: 1775
diff changeset
23 Parsers.xml2_parse = Xml2.parse
f8f5c51f5b36 xml work
Franklin Schmidt <fschmidt@gmail.com>
parents: 1775
diff changeset
24 Parsers.xml2_string = Xml2.toString
585
bb3818249dfb add Parsers
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
25
1259
e8020216dee7 add Luan.to_luan and fix multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents: 1192
diff changeset
26 local Luan = require "luan:Luan.luan"
1261
198d6af7330a rename Luan.to_table to Table.java_to_table_shallow and Luan.to_luan to Table.java_to_table_deep
Franklin Schmidt <fschmidt@gmail.com>
parents: 1259
diff changeset
27 local error = Luan.error
198d6af7330a rename Luan.to_table to Table.java_to_table_shallow and Luan.to_luan to Table.java_to_table_deep
Franklin Schmidt <fschmidt@gmail.com>
parents: 1259
diff changeset
28 local type = Luan.type or error()
198d6af7330a rename Luan.to_table to Table.java_to_table_shallow and Luan.to_luan to Table.java_to_table_deep
Franklin Schmidt <fschmidt@gmail.com>
parents: 1259
diff changeset
29 local Table = require "luan:Table.luan"
198d6af7330a rename Luan.to_table to Table.java_to_table_shallow and Luan.to_luan to Table.java_to_table_deep
Franklin Schmidt <fschmidt@gmail.com>
parents: 1259
diff changeset
30 local java_to_table_deep = Table.java_to_table_deep or error()
1402
27efb1fcbcb5 move luan.lib to goodjava
Franklin Schmidt <fschmidt@gmail.com>
parents: 1353
diff changeset
31 local JsonParser = require "java:goodjava.json.JsonParser"
1774
764723436f05 better json_parse exception
Franklin Schmidt <fschmidt@gmail.com>
parents: 1712
diff changeset
32 local ParseException = require "java:goodjava.parser.ParseException"
1112
490f77bb2ad1 add JsonParser
Franklin Schmidt <fschmidt@gmail.com>
parents: 1088
diff changeset
33
490f77bb2ad1 add JsonParser
Franklin Schmidt <fschmidt@gmail.com>
parents: 1088
diff changeset
34 -- converts json string to luan object
1192
e15a41a8b4b2 remove Io.repr
Franklin Schmidt <fschmidt@gmail.com>
parents: 1164
diff changeset
35 function Parsers.json_parse(s)
1774
764723436f05 better json_parse exception
Franklin Schmidt <fschmidt@gmail.com>
parents: 1712
diff changeset
36 local obj
764723436f05 better json_parse exception
Franklin Schmidt <fschmidt@gmail.com>
parents: 1712
diff changeset
37 try
764723436f05 better json_parse exception
Franklin Schmidt <fschmidt@gmail.com>
parents: 1712
diff changeset
38 obj = JsonParser.parse(s)
764723436f05 better json_parse exception
Franklin Schmidt <fschmidt@gmail.com>
parents: 1712
diff changeset
39 catch e
764723436f05 better json_parse exception
Franklin Schmidt <fschmidt@gmail.com>
parents: 1712
diff changeset
40 local java = e.java.getCause()
764723436f05 better json_parse exception
Franklin Schmidt <fschmidt@gmail.com>
parents: 1712
diff changeset
41 if java~=nil and java.instanceof(ParseException) then
764723436f05 better json_parse exception
Franklin Schmidt <fschmidt@gmail.com>
parents: 1712
diff changeset
42 e.message = java.getSuperMessage()
1775
Franklin Schmidt <fschmidt@gmail.com>
parents: 1774
diff changeset
43 e.text = java.text
Franklin Schmidt <fschmidt@gmail.com>
parents: 1774
diff changeset
44 e.error_index = java.errorIndex
Franklin Schmidt <fschmidt@gmail.com>
parents: 1774
diff changeset
45 e.high_index = java.highIndex
1774
764723436f05 better json_parse exception
Franklin Schmidt <fschmidt@gmail.com>
parents: 1712
diff changeset
46 end
764723436f05 better json_parse exception
Franklin Schmidt <fschmidt@gmail.com>
parents: 1712
diff changeset
47 e.throw()
764723436f05 better json_parse exception
Franklin Schmidt <fschmidt@gmail.com>
parents: 1712
diff changeset
48 end
1261
198d6af7330a rename Luan.to_table to Table.java_to_table_shallow and Luan.to_luan to Table.java_to_table_deep
Franklin Schmidt <fschmidt@gmail.com>
parents: 1259
diff changeset
49 return type(obj)=="java" and java_to_table_deep(obj) or obj
1113
22652f4020fb add JsonToString
Franklin Schmidt <fschmidt@gmail.com>
parents: 1112
diff changeset
50 end
22652f4020fb add JsonToString
Franklin Schmidt <fschmidt@gmail.com>
parents: 1112
diff changeset
51
1088
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 794
diff changeset
52 return Parsers