diff --git a/lib/builtin.js b/lib/builtin.js
index c87c30b..c73c847 100644
--- a/lib/builtin.js
+++ b/lib/builtin.js
@@ -58,6 +58,17 @@ class Builtin {
}
}
+class Map extends Builtin {
+ constructor(generator) {
+ super(generator, 'Converter');
+ }
+
+ length(ast) {
+ this.getInstanceName(ast);
+ this.generator.emit('.size()');
+ }
+}
+
class Converter extends Builtin {
constructor(generator) {
super(generator, 'Converter');
@@ -380,6 +391,8 @@ module.exports = (generator) => {
builtin[`$${type}`] = converter;
});
+ builtin['$Map'] = new Map(generator);
+
const func = new Func(generator);
builtin['$isNull'] = func;
builtin['$sleep'] = func;
diff --git a/lib/generator.js b/lib/generator.js
index 616ecf3..63ed935 100644
--- a/lib/generator.js
+++ b/lib/generator.js
@@ -885,7 +885,7 @@ class Visitor {
const examples = md2Html(example).trimEnd().split('\n');
this.emit(' * example:\n', level);
for (let j = 0; j < examples.length; j++) {
- this.emit(` * ${examples[j]}\n`, level);
+ this.emit(` * ${examples[j].replace(/\\/g, '\\\\')}\n`, level);
}
hasNextSection = true;
}
@@ -1308,7 +1308,7 @@ class Visitor {
} else if (ast.type === 'property_access') {
this.visitPropertyAccess(ast, level);
} else if (ast.type === 'string') {
- this.emit(`"${ast.value.string.replace(new RegExp('"', 'g'), '\\"')}"`);
+ this.emit(`"${ast.value.string.replace(new RegExp('"', 'g'), '\\"').replace(/\n/g, '\\n')}"`);
} else if (ast.type === 'null') {
this.emit('null');
} else if (ast.type === 'number') {
diff --git a/package.json b/package.json
index 701a770..831b337 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
- "name": "@darabonba/java-generator",
- "version": "1.3.4",
+ "name": "@ali/darabonba-java-generator",
+ "version": "2.0.4",
"description": "The darabonba generator for Java",
"main": "lib/generator",
"directories": {
diff --git a/test/fixtures/builtin/Client.java b/test/fixtures/builtin/Client.java
index 9e8a218..9be1580 100644
--- a/test/fixtures/builtin/Client.java
+++ b/test/fixtures/builtin/Client.java
@@ -86,8 +86,11 @@ public static void main(String[] args) throws Exception {
new TeaPair("key", "value")
);
java.util.Map obj = (Map)(maps);
+ int size = maps.size();
+ size = args.length();
}
+ String certificate = "-----BEGIN CERTIFICATE-----\nMIIDpjCCAo6gAwIBAgIJAL0OjFdDMLtgMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNV\nBAYTAkNOMRAwDgYDVQQIDAdCZWlqaW5nMRAwDgYDVQQHDAdIYWlEaWFuMRMwEQYD\nVQQKDApHTUNlcnQub3JnMSAwHgYDVQQDDBdHTUNlcnQgUlNBIFJvb3QgQ0EgLSAw\nMTAeFw0yNTAzMTQwMzIzMTlaFw0yNjAzMTQwMzIzMTlaMC4xCzAJBgNVBAYTAkNO\nMR8wHQYDVQQDDBZzaXRlbmFtZWZvcmFsbHRlc3QuY29tMIIBIjANBgkqhkiG9w0B\nAQEFAAOCAQ8AMIIBCgKCAQEArTxYr+dY4bX4+wT12LA6sY6ez7cTynWvmzIF9mIo\nX/3pVHYK3xM7Kg2gB5JrM6k**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************YDVR0jBBgwFoAUmifrnICTyw3pwz3Ranoc4rGfOOkwDQYJKoZIhvcN\nAQELBQADggEBALGJgyBDi/Au9T/5cZKnpdox29Pp6KfA8O1ViVnhMlumoqu6yRKe\nvFp1EsVI/2LFFSomYoC6cyVZowyBEYvfs3CoLzjHTZjW2X2NoM6CX8k/KjdpMBtt\ne1UGpL0oeWKXozjGuSd2mz4vwcbh/B7OonMWHJApT7Qxd72mB7vqjVOYFwlWvfm1\nw6w00YrEbl0W/pF0kgMyRQUy1GdD/4vSGwFnQdZu7yMNuKZxEKCKxYSBl2uqNjtQ\n7vOkdLn+d5OvHmC4jfxEuAui+5UBH1fqtEAIIzwZjvGo4PLVPQQC7Gwqq296ht1E\nQr0zULEzwFL9tZEh6AWXcg7C/oQAW0+R+qo=\n-----END CERTIFICATE-----";
if (!(null == a)) {
return ;
}
diff --git a/test/fixtures/builtin/main.dara b/test/fixtures/builtin/main.dara
index 8d77c24..9450d8d 100644
--- a/test/fixtures/builtin/main.dara
+++ b/test/fixtures/builtin/main.dara
@@ -78,7 +78,10 @@ static async function main(args: [string]): void {
key = 'value',
};
var obj: object = $object(maps);
+ var size = maps.length();
+ size = args.length();
}
+ var certificate = "-----BEGIN CERTIFICATE-----\nMIIDpjCCAo6gAwIBAgIJAL0OjFdDMLtgMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNV\nBAYTAkNOMRAwDgYDVQQIDAdCZWlqaW5nMRAwDgYDVQQHDAdIYWlEaWFuMRMwEQYD\nVQQKDApHTUNlcnQub3JnMSAwHgYDVQQDDBdHTUNlcnQgUlNBIFJvb3QgQ0EgLSAw\nMTAeFw0yNTAzMTQwMzIzMTlaFw0yNjAzMTQwMzIzMTlaMC4xCzAJBgNVBAYTAkNO\nMR8wHQYDVQQDDBZzaXRlbmFtZWZvcmFsbHRlc3QuY29tMIIBIjANBgkqhkiG9w0B\nAQEFAAOCAQ8AMIIBCgKCAQEArTxYr+dY4bX4+wT12LA6sY6ez7cTynWvmzIF9mIo\nX/3pVHYK3xM7Kg2gB5JrM6k**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************YDVR0jBBgwFoAUmifrnICTyw3pwz3Ranoc4rGfOOkwDQYJKoZIhvcN\nAQELBQADggEBALGJgyBDi/Au9T/5cZKnpdox29Pp6KfA8O1ViVnhMlumoqu6yRKe\nvFp1EsVI/2LFFSomYoC6cyVZowyBEYvfs3CoLzjHTZjW2X2NoM6CX8k/KjdpMBtt\ne1UGpL0oeWKXozjGuSd2mz4vwcbh/B7OonMWHJApT7Qxd72mB7vqjVOYFwlWvfm1\nw6w00YrEbl0W/pF0kgMyRQUy1GdD/4vSGwFnQdZu7yMNuKZxEKCKxYSBl2uqNjtQ\n7vOkdLn+d5OvHmC4jfxEuAui+5UBH1fqtEAIIzwZjvGo4PLVPQQC7Gwqq296ht1E\nQr0zULEzwFL9tZEh6AWXcg7C/oQAW0+R+qo=\n-----END CERTIFICATE-----";
if (!$isNull(a)) {
return;
}