diff --git a/pom.xml b/pom.xml index 2f57555..d3b7970 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ com.github.odiszapc nginxparser - 0.9.7 + 0.9.8 jar ${project.groupId}:${project.artifactId} @@ -71,7 +71,7 @@ org.antlr antlr4-runtime - 4.5.3 + 4.13.2 @@ -103,6 +103,20 @@ -Dfile.encoding=UTF-8 + + + org.apache.maven.plugins + maven-source-plugin + 3.3.1 + + + attach-sources + + jar + + + + diff --git a/src/main/java/com/github/odiszapc/nginxparser/NgxComment.java b/src/main/java/com/github/odiszapc/nginxparser/NgxComment.java index 84ce0c8..f4daa0d 100644 --- a/src/main/java/com/github/odiszapc/nginxparser/NgxComment.java +++ b/src/main/java/com/github/odiszapc/nginxparser/NgxComment.java @@ -23,7 +23,13 @@ public class NgxComment extends NgxAbstractEntry { public NgxComment(String comment) { - getTokens().add(new NgxToken(comment.substring(1))); + comment = comment.replaceAll("[\n\r]", ""); + NgxToken token; + if (comment.startsWith("#")) + token = new NgxToken(comment.substring(1)); + else + token = new NgxToken(comment); + getTokens().add(token); } @Override diff --git a/src/main/java/com/github/odiszapc/nginxparser/antlr/Nginx.interp b/src/main/java/com/github/odiszapc/nginxparser/antlr/Nginx.interp new file mode 100644 index 0000000..1cb75a2 --- /dev/null +++ b/src/main/java/com/github/odiszapc/nginxparser/antlr/Nginx.interp @@ -0,0 +1,64 @@ +token literal names: +null +';' +'{' +'}' +'if' +'(' +')' +'\\.' +'^' +'location' +'rewrite' +'last' +'break' +'redirect' +'permanent' +null +null +null +null +null +null +null + +token symbolic names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +Value +STR_EXT +Comment +REGEXP_PREFIXED +QUOTED_STRING +SINGLE_QUOTED +WS + +rule names: +config +statement +genericStatement +regexHeaderStatement +block +genericBlockHeader +if_statement +if_body +regexp +locationBlockHeader +rewriteStatement + + +atn: +[4, 1, 21, 184, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 4, 0, 31, 8, 0, 11, 0, 12, 0, 32, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 44, 8, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 55, 8, 2, 10, 2, 12, 2, 58, 9, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 71, 8, 4, 1, 4, 3, 4, 74, 8, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 5, 4, 88, 8, 4, 10, 4, 12, 4, 91, 9, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 102, 8, 5, 10, 5, 12, 5, 105, 9, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 112, 8, 6, 1, 6, 1, 6, 1, 6, 1, 6, 5, 6, 118, 8, 6, 10, 6, 12, 6, 121, 9, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 130, 8, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 137, 8, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 4, 8, 152, 8, 8, 11, 8, 12, 8, 153, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 160, 8, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 167, 8, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 176, 8, 10, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 182, 8, 10, 1, 10, 0, 0, 11, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 0, 1, 1, 0, 11, 14, 200, 0, 30, 1, 0, 0, 0, 2, 43, 1, 0, 0, 0, 4, 47, 1, 0, 0, 0, 6, 59, 1, 0, 0, 0, 8, 70, 1, 0, 0, 0, 10, 94, 1, 0, 0, 0, 12, 106, 1, 0, 0, 0, 14, 124, 1, 0, 0, 0, 16, 151, 1, 0, 0, 0, 18, 155, 1, 0, 0, 0, 20, 168, 1, 0, 0, 0, 22, 23, 3, 2, 1, 0, 23, 24, 6, 0, -1, 0, 24, 31, 1, 0, 0, 0, 25, 26, 3, 8, 4, 0, 26, 27, 6, 0, -1, 0, 27, 31, 1, 0, 0, 0, 28, 29, 5, 17, 0, 0, 29, 31, 6, 0, -1, 0, 30, 22, 1, 0, 0, 0, 30, 25, 1, 0, 0, 0, 30, 28, 1, 0, 0, 0, 31, 32, 1, 0, 0, 0, 32, 30, 1, 0, 0, 0, 32, 33, 1, 0, 0, 0, 33, 1, 1, 0, 0, 0, 34, 35, 3, 20, 10, 0, 35, 36, 6, 1, -1, 0, 36, 44, 1, 0, 0, 0, 37, 38, 3, 4, 2, 0, 38, 39, 6, 1, -1, 0, 39, 44, 1, 0, 0, 0, 40, 41, 3, 6, 3, 0, 41, 42, 6, 1, -1, 0, 42, 44, 1, 0, 0, 0, 43, 34, 1, 0, 0, 0, 43, 37, 1, 0, 0, 0, 43, 40, 1, 0, 0, 0, 44, 45, 1, 0, 0, 0, 45, 46, 5, 1, 0, 0, 46, 3, 1, 0, 0, 0, 47, 48, 5, 15, 0, 0, 48, 56, 6, 2, -1, 0, 49, 50, 5, 15, 0, 0, 50, 55, 6, 2, -1, 0, 51, 52, 3, 16, 8, 0, 52, 53, 6, 2, -1, 0, 53, 55, 1, 0, 0, 0, 54, 49, 1, 0, 0, 0, 54, 51, 1, 0, 0, 0, 55, 58, 1, 0, 0, 0, 56, 54, 1, 0, 0, 0, 56, 57, 1, 0, 0, 0, 57, 5, 1, 0, 0, 0, 58, 56, 1, 0, 0, 0, 59, 60, 5, 18, 0, 0, 60, 61, 6, 3, -1, 0, 61, 62, 5, 15, 0, 0, 62, 63, 6, 3, -1, 0, 63, 7, 1, 0, 0, 0, 64, 65, 3, 18, 9, 0, 65, 66, 6, 4, -1, 0, 66, 71, 1, 0, 0, 0, 67, 68, 3, 10, 5, 0, 68, 69, 6, 4, -1, 0, 69, 71, 1, 0, 0, 0, 70, 64, 1, 0, 0, 0, 70, 67, 1, 0, 0, 0, 71, 73, 1, 0, 0, 0, 72, 74, 5, 17, 0, 0, 73, 72, 1, 0, 0, 0, 73, 74, 1, 0, 0, 0, 74, 75, 1, 0, 0, 0, 75, 89, 5, 2, 0, 0, 76, 77, 3, 2, 1, 0, 77, 78, 6, 4, -1, 0, 78, 88, 1, 0, 0, 0, 79, 80, 3, 8, 4, 0, 80, 81, 6, 4, -1, 0, 81, 88, 1, 0, 0, 0, 82, 83, 3, 12, 6, 0, 83, 84, 6, 4, -1, 0, 84, 88, 1, 0, 0, 0, 85, 86, 5, 17, 0, 0, 86, 88, 6, 4, -1, 0, 87, 76, 1, 0, 0, 0, 87, 79, 1, 0, 0, 0, 87, 82, 1, 0, 0, 0, 87, 85, 1, 0, 0, 0, 88, 91, 1, 0, 0, 0, 89, 87, 1, 0, 0, 0, 89, 90, 1, 0, 0, 0, 90, 92, 1, 0, 0, 0, 91, 89, 1, 0, 0, 0, 92, 93, 5, 3, 0, 0, 93, 9, 1, 0, 0, 0, 94, 95, 5, 15, 0, 0, 95, 103, 6, 5, -1, 0, 96, 97, 5, 15, 0, 0, 97, 102, 6, 5, -1, 0, 98, 99, 3, 16, 8, 0, 99, 100, 6, 5, -1, 0, 100, 102, 1, 0, 0, 0, 101, 96, 1, 0, 0, 0, 101, 98, 1, 0, 0, 0, 102, 105, 1, 0, 0, 0, 103, 101, 1, 0, 0, 0, 103, 104, 1, 0, 0, 0, 104, 11, 1, 0, 0, 0, 105, 103, 1, 0, 0, 0, 106, 107, 5, 4, 0, 0, 107, 108, 6, 6, -1, 0, 108, 109, 3, 14, 7, 0, 109, 111, 6, 6, -1, 0, 110, 112, 5, 17, 0, 0, 111, 110, 1, 0, 0, 0, 111, 112, 1, 0, 0, 0, 112, 113, 1, 0, 0, 0, 113, 119, 5, 2, 0, 0, 114, 115, 3, 2, 1, 0, 115, 116, 6, 6, -1, 0, 116, 118, 1, 0, 0, 0, 117, 114, 1, 0, 0, 0, 118, 121, 1, 0, 0, 0, 119, 117, 1, 0, 0, 0, 119, 120, 1, 0, 0, 0, 120, 122, 1, 0, 0, 0, 121, 119, 1, 0, 0, 0, 122, 123, 5, 3, 0, 0, 123, 13, 1, 0, 0, 0, 124, 125, 5, 5, 0, 0, 125, 126, 5, 15, 0, 0, 126, 129, 6, 7, -1, 0, 127, 128, 5, 15, 0, 0, 128, 130, 6, 7, -1, 0, 129, 127, 1, 0, 0, 0, 129, 130, 1, 0, 0, 0, 130, 136, 1, 0, 0, 0, 131, 132, 5, 15, 0, 0, 132, 137, 6, 7, -1, 0, 133, 134, 3, 16, 8, 0, 134, 135, 6, 7, -1, 0, 135, 137, 1, 0, 0, 0, 136, 131, 1, 0, 0, 0, 136, 133, 1, 0, 0, 0, 136, 137, 1, 0, 0, 0, 137, 138, 1, 0, 0, 0, 138, 139, 5, 6, 0, 0, 139, 15, 1, 0, 0, 0, 140, 141, 5, 7, 0, 0, 141, 152, 6, 8, -1, 0, 142, 143, 5, 8, 0, 0, 143, 152, 6, 8, -1, 0, 144, 145, 5, 15, 0, 0, 145, 152, 6, 8, -1, 0, 146, 147, 5, 5, 0, 0, 147, 148, 3, 16, 8, 0, 148, 149, 6, 8, -1, 0, 149, 150, 5, 6, 0, 0, 150, 152, 1, 0, 0, 0, 151, 140, 1, 0, 0, 0, 151, 142, 1, 0, 0, 0, 151, 144, 1, 0, 0, 0, 151, 146, 1, 0, 0, 0, 152, 153, 1, 0, 0, 0, 153, 151, 1, 0, 0, 0, 153, 154, 1, 0, 0, 0, 154, 17, 1, 0, 0, 0, 155, 156, 5, 9, 0, 0, 156, 159, 6, 9, -1, 0, 157, 158, 5, 15, 0, 0, 158, 160, 6, 9, -1, 0, 159, 157, 1, 0, 0, 0, 159, 160, 1, 0, 0, 0, 160, 166, 1, 0, 0, 0, 161, 162, 5, 15, 0, 0, 162, 167, 6, 9, -1, 0, 163, 164, 3, 16, 8, 0, 164, 165, 6, 9, -1, 0, 165, 167, 1, 0, 0, 0, 166, 161, 1, 0, 0, 0, 166, 163, 1, 0, 0, 0, 167, 19, 1, 0, 0, 0, 168, 169, 5, 10, 0, 0, 169, 175, 6, 10, -1, 0, 170, 171, 5, 15, 0, 0, 171, 176, 6, 10, -1, 0, 172, 173, 3, 16, 8, 0, 173, 174, 6, 10, -1, 0, 174, 176, 1, 0, 0, 0, 175, 170, 1, 0, 0, 0, 175, 172, 1, 0, 0, 0, 176, 177, 1, 0, 0, 0, 177, 178, 5, 15, 0, 0, 178, 181, 6, 10, -1, 0, 179, 180, 7, 0, 0, 0, 180, 182, 6, 10, -1, 0, 181, 179, 1, 0, 0, 0, 181, 182, 1, 0, 0, 0, 182, 21, 1, 0, 0, 0, 21, 30, 32, 43, 54, 56, 70, 73, 87, 89, 101, 103, 111, 119, 129, 136, 151, 153, 159, 166, 175, 181] \ No newline at end of file diff --git a/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxBaseListener.java b/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxBaseListener.java index 6fa80ac..575bc2b 100644 --- a/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxBaseListener.java +++ b/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxBaseListener.java @@ -1,8 +1,4 @@ -// Generated from Nginx.g4 by ANTLR 4.5.3 - - package com.github.odiszapc.nginxparser.antlr; - import com.github.odiszapc.nginxparser.*; - +package com.github.odiszapc.nginxparser.antlr;// Generated from /Volumes/Working/Works/Git Sources/nginx-java-parser/src/main/resources/grammar/Nginx.g4 by ANTLR 4.13.1 import org.antlr.v4.runtime.ParserRuleContext; import org.antlr.v4.runtime.tree.ErrorNode; @@ -13,6 +9,7 @@ * which can be extended to create a listener which only needs to handle a subset * of the available methods. */ +@SuppressWarnings("CheckReturnValue") public class NginxBaseListener implements NginxListener { /** * {@inheritDoc} diff --git a/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxBaseVisitor.java b/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxBaseVisitor.java index 0af9ad7..79c87c7 100644 --- a/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxBaseVisitor.java +++ b/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxBaseVisitor.java @@ -1,8 +1,4 @@ -// Generated from Nginx.g4 by ANTLR 4.5.3 - - package com.github.odiszapc.nginxparser.antlr; - import com.github.odiszapc.nginxparser.*; - +package com.github.odiszapc.nginxparser.antlr;// Generated from /Volumes/Working/Works/Git Sources/nginx-java-parser/src/main/resources/grammar/Nginx.g4 by ANTLR 4.13.1 import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor; /** @@ -13,6 +9,7 @@ * @param The return type of the visit operation. Use {@link Void} for * operations with no return type. */ +@SuppressWarnings("CheckReturnValue") public class NginxBaseVisitor extends AbstractParseTreeVisitor implements NginxVisitor { /** * {@inheritDoc} diff --git a/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxLexer.interp b/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxLexer.interp new file mode 100644 index 0000000..758bcbf --- /dev/null +++ b/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxLexer.interp @@ -0,0 +1,84 @@ +token literal names: +null +';' +'{' +'}' +'if' +'(' +')' +'\\.' +'^' +'location' +'rewrite' +'last' +'break' +'redirect' +'permanent' +null +null +null +null +null +null +null + +token symbolic names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +Value +STR_EXT +Comment +REGEXP_PREFIXED +QUOTED_STRING +SINGLE_QUOTED +WS + +rule names: +T__0 +T__1 +T__2 +T__3 +T__4 +T__5 +T__6 +T__7 +T__8 +T__9 +T__10 +T__11 +T__12 +T__13 +Value +STR_EXT +Comment +REGEXP_PREFIXED +QUOTED_STRING +RegexpPrefix +StringCharacters +NON_ASCII +EscapeSequence +SINGLE_QUOTED +WS + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[4, 0, 21, 180, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 3, 14, 120, 8, 14, 1, 15, 1, 15, 4, 15, 124, 8, 15, 11, 15, 12, 15, 125, 1, 16, 1, 16, 5, 16, 130, 8, 16, 10, 16, 12, 16, 133, 9, 16, 1, 16, 1, 16, 1, 17, 1, 17, 4, 17, 139, 8, 17, 11, 17, 12, 17, 140, 1, 18, 1, 18, 3, 18, 145, 8, 18, 1, 18, 1, 18, 1, 19, 1, 19, 3, 19, 151, 8, 19, 1, 20, 1, 20, 4, 20, 155, 8, 20, 11, 20, 12, 20, 156, 1, 21, 1, 21, 1, 22, 1, 22, 3, 22, 163, 8, 22, 1, 23, 1, 23, 5, 23, 167, 8, 23, 10, 23, 12, 23, 170, 9, 23, 1, 23, 1, 23, 1, 24, 4, 24, 175, 8, 24, 11, 24, 12, 24, 176, 1, 24, 1, 24, 0, 0, 25, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 0, 41, 0, 43, 0, 45, 0, 47, 20, 49, 21, 1, 0, 9, 9, 0, 33, 33, 35, 36, 38, 38, 42, 58, 61, 61, 63, 95, 97, 122, 124, 124, 126, 126, 2, 0, 10, 10, 13, 13, 9, 0, 33, 33, 35, 36, 38, 38, 40, 58, 61, 61, 63, 95, 97, 122, 124, 124, 126, 126, 1, 0, 126, 126, 1, 0, 42, 42, 2, 0, 34, 34, 92, 92, 8, 0, 34, 34, 39, 39, 92, 92, 98, 98, 102, 102, 110, 110, 114, 114, 116, 116, 2, 0, 39, 39, 92, 92, 3, 0, 9, 10, 13, 13, 32, 32, 188, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 1, 51, 1, 0, 0, 0, 3, 53, 1, 0, 0, 0, 5, 55, 1, 0, 0, 0, 7, 57, 1, 0, 0, 0, 9, 60, 1, 0, 0, 0, 11, 62, 1, 0, 0, 0, 13, 64, 1, 0, 0, 0, 15, 67, 1, 0, 0, 0, 17, 69, 1, 0, 0, 0, 19, 78, 1, 0, 0, 0, 21, 86, 1, 0, 0, 0, 23, 91, 1, 0, 0, 0, 25, 97, 1, 0, 0, 0, 27, 106, 1, 0, 0, 0, 29, 119, 1, 0, 0, 0, 31, 123, 1, 0, 0, 0, 33, 127, 1, 0, 0, 0, 35, 136, 1, 0, 0, 0, 37, 142, 1, 0, 0, 0, 39, 148, 1, 0, 0, 0, 41, 154, 1, 0, 0, 0, 43, 158, 1, 0, 0, 0, 45, 160, 1, 0, 0, 0, 47, 164, 1, 0, 0, 0, 49, 174, 1, 0, 0, 0, 51, 52, 5, 59, 0, 0, 52, 2, 1, 0, 0, 0, 53, 54, 5, 123, 0, 0, 54, 4, 1, 0, 0, 0, 55, 56, 5, 125, 0, 0, 56, 6, 1, 0, 0, 0, 57, 58, 5, 105, 0, 0, 58, 59, 5, 102, 0, 0, 59, 8, 1, 0, 0, 0, 60, 61, 5, 40, 0, 0, 61, 10, 1, 0, 0, 0, 62, 63, 5, 41, 0, 0, 63, 12, 1, 0, 0, 0, 64, 65, 5, 92, 0, 0, 65, 66, 5, 46, 0, 0, 66, 14, 1, 0, 0, 0, 67, 68, 5, 94, 0, 0, 68, 16, 1, 0, 0, 0, 69, 70, 5, 108, 0, 0, 70, 71, 5, 111, 0, 0, 71, 72, 5, 99, 0, 0, 72, 73, 5, 97, 0, 0, 73, 74, 5, 116, 0, 0, 74, 75, 5, 105, 0, 0, 75, 76, 5, 111, 0, 0, 76, 77, 5, 110, 0, 0, 77, 18, 1, 0, 0, 0, 78, 79, 5, 114, 0, 0, 79, 80, 5, 101, 0, 0, 80, 81, 5, 119, 0, 0, 81, 82, 5, 114, 0, 0, 82, 83, 5, 105, 0, 0, 83, 84, 5, 116, 0, 0, 84, 85, 5, 101, 0, 0, 85, 20, 1, 0, 0, 0, 86, 87, 5, 108, 0, 0, 87, 88, 5, 97, 0, 0, 88, 89, 5, 115, 0, 0, 89, 90, 5, 116, 0, 0, 90, 22, 1, 0, 0, 0, 91, 92, 5, 98, 0, 0, 92, 93, 5, 114, 0, 0, 93, 94, 5, 101, 0, 0, 94, 95, 5, 97, 0, 0, 95, 96, 5, 107, 0, 0, 96, 24, 1, 0, 0, 0, 97, 98, 5, 114, 0, 0, 98, 99, 5, 101, 0, 0, 99, 100, 5, 100, 0, 0, 100, 101, 5, 105, 0, 0, 101, 102, 5, 114, 0, 0, 102, 103, 5, 101, 0, 0, 103, 104, 5, 99, 0, 0, 104, 105, 5, 116, 0, 0, 105, 26, 1, 0, 0, 0, 106, 107, 5, 112, 0, 0, 107, 108, 5, 101, 0, 0, 108, 109, 5, 114, 0, 0, 109, 110, 5, 109, 0, 0, 110, 111, 5, 97, 0, 0, 111, 112, 5, 110, 0, 0, 112, 113, 5, 101, 0, 0, 113, 114, 5, 110, 0, 0, 114, 115, 5, 116, 0, 0, 115, 28, 1, 0, 0, 0, 116, 120, 3, 31, 15, 0, 117, 120, 3, 37, 18, 0, 118, 120, 3, 47, 23, 0, 119, 116, 1, 0, 0, 0, 119, 117, 1, 0, 0, 0, 119, 118, 1, 0, 0, 0, 120, 30, 1, 0, 0, 0, 121, 124, 7, 0, 0, 0, 122, 124, 3, 43, 21, 0, 123, 121, 1, 0, 0, 0, 123, 122, 1, 0, 0, 0, 124, 125, 1, 0, 0, 0, 125, 123, 1, 0, 0, 0, 125, 126, 1, 0, 0, 0, 126, 32, 1, 0, 0, 0, 127, 131, 5, 35, 0, 0, 128, 130, 8, 1, 0, 0, 129, 128, 1, 0, 0, 0, 130, 133, 1, 0, 0, 0, 131, 129, 1, 0, 0, 0, 131, 132, 1, 0, 0, 0, 132, 134, 1, 0, 0, 0, 133, 131, 1, 0, 0, 0, 134, 135, 7, 1, 0, 0, 135, 34, 1, 0, 0, 0, 136, 138, 3, 39, 19, 0, 137, 139, 7, 2, 0, 0, 138, 137, 1, 0, 0, 0, 139, 140, 1, 0, 0, 0, 140, 138, 1, 0, 0, 0, 140, 141, 1, 0, 0, 0, 141, 36, 1, 0, 0, 0, 142, 144, 5, 34, 0, 0, 143, 145, 3, 41, 20, 0, 144, 143, 1, 0, 0, 0, 144, 145, 1, 0, 0, 0, 145, 146, 1, 0, 0, 0, 146, 147, 5, 34, 0, 0, 147, 38, 1, 0, 0, 0, 148, 150, 7, 3, 0, 0, 149, 151, 7, 4, 0, 0, 150, 149, 1, 0, 0, 0, 150, 151, 1, 0, 0, 0, 151, 40, 1, 0, 0, 0, 152, 155, 8, 5, 0, 0, 153, 155, 3, 45, 22, 0, 154, 152, 1, 0, 0, 0, 154, 153, 1, 0, 0, 0, 155, 156, 1, 0, 0, 0, 156, 154, 1, 0, 0, 0, 156, 157, 1, 0, 0, 0, 157, 42, 1, 0, 0, 0, 158, 159, 2, 128, 65535, 0, 159, 44, 1, 0, 0, 0, 160, 162, 5, 92, 0, 0, 161, 163, 7, 6, 0, 0, 162, 161, 1, 0, 0, 0, 162, 163, 1, 0, 0, 0, 163, 46, 1, 0, 0, 0, 164, 168, 5, 39, 0, 0, 165, 167, 8, 7, 0, 0, 166, 165, 1, 0, 0, 0, 167, 170, 1, 0, 0, 0, 168, 166, 1, 0, 0, 0, 168, 169, 1, 0, 0, 0, 169, 171, 1, 0, 0, 0, 170, 168, 1, 0, 0, 0, 171, 172, 5, 39, 0, 0, 172, 48, 1, 0, 0, 0, 173, 175, 7, 8, 0, 0, 174, 173, 1, 0, 0, 0, 175, 176, 1, 0, 0, 0, 176, 174, 1, 0, 0, 0, 176, 177, 1, 0, 0, 0, 177, 178, 1, 0, 0, 0, 178, 179, 6, 24, 0, 0, 179, 50, 1, 0, 0, 0, 13, 0, 119, 123, 125, 131, 140, 144, 150, 154, 156, 162, 168, 176, 1, 6, 0, 0] \ No newline at end of file diff --git a/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxLexer.java b/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxLexer.java index dc49462..ff0d7c8 100644 --- a/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxLexer.java +++ b/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxLexer.java @@ -1,4 +1,4 @@ -// Generated from Nginx.g4 by ANTLR 4.5.3 +// Generated from /Volumes/Working/Works/Git Sources/nginx-java-parser/src/main/resources/grammar/Nginx.g4 by ANTLR 4.13.1 package com.github.odiszapc.nginxparser.antlr; @@ -11,9 +11,9 @@ import org.antlr.v4.runtime.dfa.DFA; import org.antlr.v4.runtime.misc.*; -@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue", "this-escape"}) public class NginxLexer extends Lexer { - static { RuntimeMetaData.checkVersion("4.5.3", RuntimeMetaData.VERSION); } + static { RuntimeMetaData.checkVersion("4.13.1", RuntimeMetaData.VERSION); } protected static final DFA[] _decisionToDFA; protected static final PredictionContextCache _sharedContextCache = @@ -22,26 +22,39 @@ public class NginxLexer extends Lexer { T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, Value=15, STR_EXT=16, Comment=17, REGEXP_PREFIXED=18, QUOTED_STRING=19, SINGLE_QUOTED=20, WS=21; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + public static String[] modeNames = { "DEFAULT_MODE" }; - public static final String[] ruleNames = { - "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", - "T__9", "T__10", "T__11", "T__12", "T__13", "Value", "STR_EXT", "Comment", - "REGEXP_PREFIXED", "QUOTED_STRING", "RegexpPrefix", "StringCharacters", - "NON_ASCII", "EscapeSequence", "SINGLE_QUOTED", "WS" - }; + private static String[] makeRuleNames() { + return new String[] { + "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", + "T__9", "T__10", "T__11", "T__12", "T__13", "Value", "STR_EXT", "Comment", + "REGEXP_PREFIXED", "QUOTED_STRING", "RegexpPrefix", "StringCharacters", + "NON_ASCII", "EscapeSequence", "SINGLE_QUOTED", "WS" + }; + } + public static final String[] ruleNames = makeRuleNames(); - private static final String[] _LITERAL_NAMES = { - null, "';'", "'{'", "'}'", "'if'", "'('", "')'", "'\\.'", "'^'", "'location'", - "'rewrite'", "'last'", "'break'", "'redirect'", "'permanent'" - }; - private static final String[] _SYMBOLIC_NAMES = { - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, "Value", "STR_EXT", "Comment", "REGEXP_PREFIXED", "QUOTED_STRING", - "SINGLE_QUOTED", "WS" - }; + private static String[] makeLiteralNames() { + return new String[] { + null, "';'", "'{'", "'}'", "'if'", "'('", "')'", "'\\.'", "'^'", "'location'", + "'rewrite'", "'last'", "'break'", "'redirect'", "'permanent'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, "Value", "STR_EXT", "Comment", "REGEXP_PREFIXED", "QUOTED_STRING", + "SINGLE_QUOTED", "WS" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); /** @@ -90,6 +103,9 @@ public NginxLexer(CharStream input) { @Override public String getSerializedATN() { return _serializedATN; } + @Override + public String[] getChannelNames() { return channelNames; } + @Override public String[] getModeNames() { return modeNames; } @@ -97,62 +113,119 @@ public NginxLexer(CharStream input) { public ATN getATN() { return _ATN; } public static final String _serializedATN = - "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\2\27\u00b4\b\1\4\2"+ - "\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4"+ - "\13\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22"+ - "\t\22\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31"+ - "\t\31\4\32\t\32\3\2\3\2\3\3\3\3\3\4\3\4\3\5\3\5\3\5\3\6\3\6\3\7\3\7\3"+ - "\b\3\b\3\b\3\t\3\t\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\13\3\13\3\13"+ - "\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r"+ - "\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\17\3\17\3\17\3\17\3\17"+ - "\3\17\3\17\3\17\3\17\3\17\3\20\3\20\3\20\5\20z\n\20\3\21\3\21\6\21~\n"+ - "\21\r\21\16\21\177\3\22\3\22\7\22\u0084\n\22\f\22\16\22\u0087\13\22\3"+ - "\23\3\23\6\23\u008b\n\23\r\23\16\23\u008c\3\24\3\24\5\24\u0091\n\24\3"+ - "\24\3\24\3\25\3\25\5\25\u0097\n\25\3\26\3\26\6\26\u009b\n\26\r\26\16\26"+ - "\u009c\3\27\3\27\3\30\3\30\5\30\u00a3\n\30\3\31\3\31\7\31\u00a7\n\31\f"+ - "\31\16\31\u00aa\13\31\3\31\3\31\3\32\6\32\u00af\n\32\r\32\16\32\u00b0"+ - "\3\32\3\32\2\2\33\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31"+ - "\16\33\17\35\20\37\21!\22#\23%\24\'\25)\2+\2-\2/\2\61\26\63\27\3\2\13"+ - "\13\2##%&((,\3\2\2\2\r@\3\2\2"+ - "\2\17B\3\2\2\2\21E\3\2\2\2\23G\3\2\2\2\25P\3\2\2\2\27X\3\2\2\2\31]\3\2"+ - "\2\2\33c\3\2\2\2\35l\3\2\2\2\37y\3\2\2\2!}\3\2\2\2#\u0081\3\2\2\2%\u0088"+ - "\3\2\2\2\'\u008e\3\2\2\2)\u0094\3\2\2\2+\u009a\3\2\2\2-\u009e\3\2\2\2"+ - "/\u00a0\3\2\2\2\61\u00a4\3\2\2\2\63\u00ae\3\2\2\2\65\66\7=\2\2\66\4\3"+ - "\2\2\2\678\7}\2\28\6\3\2\2\29:\7\177\2\2:\b\3\2\2\2;<\7k\2\2<=\7h\2\2"+ - "=\n\3\2\2\2>?\7*\2\2?\f\3\2\2\2@A\7+\2\2A\16\3\2\2\2BC\7^\2\2CD\7\60\2"+ - "\2D\20\3\2\2\2EF\7`\2\2F\22\3\2\2\2GH\7n\2\2HI\7q\2\2IJ\7e\2\2JK\7c\2"+ - "\2KL\7v\2\2LM\7k\2\2MN\7q\2\2NO\7p\2\2O\24\3\2\2\2PQ\7t\2\2QR\7g\2\2R"+ - "S\7y\2\2ST\7t\2\2TU\7k\2\2UV\7v\2\2VW\7g\2\2W\26\3\2\2\2XY\7n\2\2YZ\7"+ - "c\2\2Z[\7u\2\2[\\\7v\2\2\\\30\3\2\2\2]^\7d\2\2^_\7t\2\2_`\7g\2\2`a\7c"+ - "\2\2ab\7m\2\2b\32\3\2\2\2cd\7t\2\2de\7g\2\2ef\7f\2\2fg\7k\2\2gh\7t\2\2"+ - "hi\7g\2\2ij\7e\2\2jk\7v\2\2k\34\3\2\2\2lm\7r\2\2mn\7g\2\2no\7t\2\2op\7"+ - "o\2\2pq\7c\2\2qr\7p\2\2rs\7g\2\2st\7p\2\2tu\7v\2\2u\36\3\2\2\2vz\5!\21"+ - "\2wz\5\'\24\2xz\5\61\31\2yv\3\2\2\2yw\3\2\2\2yx\3\2\2\2z \3\2\2\2{~\t"+ - "\2\2\2|~\5-\27\2}{\3\2\2\2}|\3\2\2\2~\177\3\2\2\2\177}\3\2\2\2\177\u0080"+ - "\3\2\2\2\u0080\"\3\2\2\2\u0081\u0085\7%\2\2\u0082\u0084\n\3\2\2\u0083"+ - "\u0082\3\2\2\2\u0084\u0087\3\2\2\2\u0085\u0083\3\2\2\2\u0085\u0086\3\2"+ - "\2\2\u0086$\3\2\2\2\u0087\u0085\3\2\2\2\u0088\u008a\5)\25\2\u0089\u008b"+ - "\t\4\2\2\u008a\u0089\3\2\2\2\u008b\u008c\3\2\2\2\u008c\u008a\3\2\2\2\u008c"+ - "\u008d\3\2\2\2\u008d&\3\2\2\2\u008e\u0090\7$\2\2\u008f\u0091\5+\26\2\u0090"+ - "\u008f\3\2\2\2\u0090\u0091\3\2\2\2\u0091\u0092\3\2\2\2\u0092\u0093\7$"+ - "\2\2\u0093(\3\2\2\2\u0094\u0096\t\5\2\2\u0095\u0097\t\6\2\2\u0096\u0095"+ - "\3\2\2\2\u0096\u0097\3\2\2\2\u0097*\3\2\2\2\u0098\u009b\n\7\2\2\u0099"+ - "\u009b\5/\30\2\u009a\u0098\3\2\2\2\u009a\u0099\3\2\2\2\u009b\u009c\3\2"+ - "\2\2\u009c\u009a\3\2\2\2\u009c\u009d\3\2\2\2\u009d,\3\2\2\2\u009e\u009f"+ - "\4\u0082\1\2\u009f.\3\2\2\2\u00a0\u00a2\7^\2\2\u00a1\u00a3\t\b\2\2\u00a2"+ - "\u00a1\3\2\2\2\u00a2\u00a3\3\2\2\2\u00a3\60\3\2\2\2\u00a4\u00a8\7)\2\2"+ - "\u00a5\u00a7\n\t\2\2\u00a6\u00a5\3\2\2\2\u00a7\u00aa\3\2\2\2\u00a8\u00a6"+ - "\3\2\2\2\u00a8\u00a9\3\2\2\2\u00a9\u00ab\3\2\2\2\u00aa\u00a8\3\2\2\2\u00ab"+ - "\u00ac\7)\2\2\u00ac\62\3\2\2\2\u00ad\u00af\t\n\2\2\u00ae\u00ad\3\2\2\2"+ - "\u00af\u00b0\3\2\2\2\u00b0\u00ae\3\2\2\2\u00b0\u00b1\3\2\2\2\u00b1\u00b2"+ - "\3\2\2\2\u00b2\u00b3\b\32\2\2\u00b3\64\3\2\2\2\17\2y}\177\u0085\u008c"+ - "\u0090\u0096\u009a\u009c\u00a2\u00a8\u00b0\3\b\2\2"; + "\u0004\u0000\u0015\u00b4\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002"+ + "\u0001\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002"+ + "\u0004\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002"+ + "\u0007\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002"+ + "\u000b\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e"+ + "\u0002\u000f\u0007\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011"+ + "\u0002\u0012\u0007\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014"+ + "\u0002\u0015\u0007\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017"+ + "\u0002\u0018\u0007\u0018\u0001\u0000\u0001\u0000\u0001\u0001\u0001\u0001"+ + "\u0001\u0002\u0001\u0002\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0004"+ + "\u0001\u0004\u0001\u0005\u0001\u0005\u0001\u0006\u0001\u0006\u0001\u0006"+ + "\u0001\u0007\u0001\u0007\u0001\b\u0001\b\u0001\b\u0001\b\u0001\b\u0001"+ + "\b\u0001\b\u0001\b\u0001\b\u0001\t\u0001\t\u0001\t\u0001\t\u0001\t\u0001"+ + "\t\u0001\t\u0001\t\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\u000b"+ + "\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\f\u0001"+ + "\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\r\u0001"+ + "\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001"+ + "\u000e\u0001\u000e\u0001\u000e\u0003\u000ex\b\u000e\u0001\u000f\u0001"+ + "\u000f\u0004\u000f|\b\u000f\u000b\u000f\f\u000f}\u0001\u0010\u0001\u0010"+ + "\u0005\u0010\u0082\b\u0010\n\u0010\f\u0010\u0085\t\u0010\u0001\u0010\u0001"+ + "\u0010\u0001\u0011\u0001\u0011\u0004\u0011\u008b\b\u0011\u000b\u0011\f"+ + "\u0011\u008c\u0001\u0012\u0001\u0012\u0003\u0012\u0091\b\u0012\u0001\u0012"+ + "\u0001\u0012\u0001\u0013\u0001\u0013\u0003\u0013\u0097\b\u0013\u0001\u0014"+ + "\u0001\u0014\u0004\u0014\u009b\b\u0014\u000b\u0014\f\u0014\u009c\u0001"+ + "\u0015\u0001\u0015\u0001\u0016\u0001\u0016\u0003\u0016\u00a3\b\u0016\u0001"+ + "\u0017\u0001\u0017\u0005\u0017\u00a7\b\u0017\n\u0017\f\u0017\u00aa\t\u0017"+ + "\u0001\u0017\u0001\u0017\u0001\u0018\u0004\u0018\u00af\b\u0018\u000b\u0018"+ + "\f\u0018\u00b0\u0001\u0018\u0001\u0018\u0000\u0000\u0019\u0001\u0001\u0003"+ + "\u0002\u0005\u0003\u0007\u0004\t\u0005\u000b\u0006\r\u0007\u000f\b\u0011"+ + "\t\u0013\n\u0015\u000b\u0017\f\u0019\r\u001b\u000e\u001d\u000f\u001f\u0010"+ + "!\u0011#\u0012%\u0013\'\u0000)\u0000+\u0000-\u0000/\u00141\u0015\u0001"+ + "\u0000\t\t\u0000!!#$&&*:==?_az||~~\u0002\u0000\n\n\r\r\t\u0000!!#$&&("+ + ":==?_az||~~\u0001\u0000~~\u0001\u0000**\u0002\u0000\"\"\\\\\b\u0000\""+ + "\"\'\'\\\\bbffnnrrtt\u0002\u0000\'\'\\\\\u0003\u0000\t\n\r\r \u00bc\u0000"+ + "\u0001\u0001\u0000\u0000\u0000\u0000\u0003\u0001\u0000\u0000\u0000\u0000"+ + "\u0005\u0001\u0000\u0000\u0000\u0000\u0007\u0001\u0000\u0000\u0000\u0000"+ + "\t\u0001\u0000\u0000\u0000\u0000\u000b\u0001\u0000\u0000\u0000\u0000\r"+ + "\u0001\u0000\u0000\u0000\u0000\u000f\u0001\u0000\u0000\u0000\u0000\u0011"+ + "\u0001\u0000\u0000\u0000\u0000\u0013\u0001\u0000\u0000\u0000\u0000\u0015"+ + "\u0001\u0000\u0000\u0000\u0000\u0017\u0001\u0000\u0000\u0000\u0000\u0019"+ + "\u0001\u0000\u0000\u0000\u0000\u001b\u0001\u0000\u0000\u0000\u0000\u001d"+ + "\u0001\u0000\u0000\u0000\u0000\u001f\u0001\u0000\u0000\u0000\u0000!\u0001"+ + "\u0000\u0000\u0000\u0000#\u0001\u0000\u0000\u0000\u0000%\u0001\u0000\u0000"+ + "\u0000\u0000/\u0001\u0000\u0000\u0000\u00001\u0001\u0000\u0000\u0000\u0001"+ + "3\u0001\u0000\u0000\u0000\u00035\u0001\u0000\u0000\u0000\u00057\u0001"+ + "\u0000\u0000\u0000\u00079\u0001\u0000\u0000\u0000\t<\u0001\u0000\u0000"+ + "\u0000\u000b>\u0001\u0000\u0000\u0000\r@\u0001\u0000\u0000\u0000\u000f"+ + "C\u0001\u0000\u0000\u0000\u0011E\u0001\u0000\u0000\u0000\u0013N\u0001"+ + "\u0000\u0000\u0000\u0015V\u0001\u0000\u0000\u0000\u0017[\u0001\u0000\u0000"+ + "\u0000\u0019a\u0001\u0000\u0000\u0000\u001bj\u0001\u0000\u0000\u0000\u001d"+ + "w\u0001\u0000\u0000\u0000\u001f{\u0001\u0000\u0000\u0000!\u007f\u0001"+ + "\u0000\u0000\u0000#\u0088\u0001\u0000\u0000\u0000%\u008e\u0001\u0000\u0000"+ + "\u0000\'\u0094\u0001\u0000\u0000\u0000)\u009a\u0001\u0000\u0000\u0000"+ + "+\u009e\u0001\u0000\u0000\u0000-\u00a0\u0001\u0000\u0000\u0000/\u00a4"+ + "\u0001\u0000\u0000\u00001\u00ae\u0001\u0000\u0000\u000034\u0005;\u0000"+ + "\u00004\u0002\u0001\u0000\u0000\u000056\u0005{\u0000\u00006\u0004\u0001"+ + "\u0000\u0000\u000078\u0005}\u0000\u00008\u0006\u0001\u0000\u0000\u0000"+ + "9:\u0005i\u0000\u0000:;\u0005f\u0000\u0000;\b\u0001\u0000\u0000\u0000"+ + "<=\u0005(\u0000\u0000=\n\u0001\u0000\u0000\u0000>?\u0005)\u0000\u0000"+ + "?\f\u0001\u0000\u0000\u0000@A\u0005\\\u0000\u0000AB\u0005.\u0000\u0000"+ + "B\u000e\u0001\u0000\u0000\u0000CD\u0005^\u0000\u0000D\u0010\u0001\u0000"+ + "\u0000\u0000EF\u0005l\u0000\u0000FG\u0005o\u0000\u0000GH\u0005c\u0000"+ + "\u0000HI\u0005a\u0000\u0000IJ\u0005t\u0000\u0000JK\u0005i\u0000\u0000"+ + "KL\u0005o\u0000\u0000LM\u0005n\u0000\u0000M\u0012\u0001\u0000\u0000\u0000"+ + "NO\u0005r\u0000\u0000OP\u0005e\u0000\u0000PQ\u0005w\u0000\u0000QR\u0005"+ + "r\u0000\u0000RS\u0005i\u0000\u0000ST\u0005t\u0000\u0000TU\u0005e\u0000"+ + "\u0000U\u0014\u0001\u0000\u0000\u0000VW\u0005l\u0000\u0000WX\u0005a\u0000"+ + "\u0000XY\u0005s\u0000\u0000YZ\u0005t\u0000\u0000Z\u0016\u0001\u0000\u0000"+ + "\u0000[\\\u0005b\u0000\u0000\\]\u0005r\u0000\u0000]^\u0005e\u0000\u0000"+ + "^_\u0005a\u0000\u0000_`\u0005k\u0000\u0000`\u0018\u0001\u0000\u0000\u0000"+ + "ab\u0005r\u0000\u0000bc\u0005e\u0000\u0000cd\u0005d\u0000\u0000de\u0005"+ + "i\u0000\u0000ef\u0005r\u0000\u0000fg\u0005e\u0000\u0000gh\u0005c\u0000"+ + "\u0000hi\u0005t\u0000\u0000i\u001a\u0001\u0000\u0000\u0000jk\u0005p\u0000"+ + "\u0000kl\u0005e\u0000\u0000lm\u0005r\u0000\u0000mn\u0005m\u0000\u0000"+ + "no\u0005a\u0000\u0000op\u0005n\u0000\u0000pq\u0005e\u0000\u0000qr\u0005"+ + "n\u0000\u0000rs\u0005t\u0000\u0000s\u001c\u0001\u0000\u0000\u0000tx\u0003"+ + "\u001f\u000f\u0000ux\u0003%\u0012\u0000vx\u0003/\u0017\u0000wt\u0001\u0000"+ + "\u0000\u0000wu\u0001\u0000\u0000\u0000wv\u0001\u0000\u0000\u0000x\u001e"+ + "\u0001\u0000\u0000\u0000y|\u0007\u0000\u0000\u0000z|\u0003+\u0015\u0000"+ + "{y\u0001\u0000\u0000\u0000{z\u0001\u0000\u0000\u0000|}\u0001\u0000\u0000"+ + "\u0000}{\u0001\u0000\u0000\u0000}~\u0001\u0000\u0000\u0000~ \u0001\u0000"+ + "\u0000\u0000\u007f\u0083\u0005#\u0000\u0000\u0080\u0082\b\u0001\u0000"+ + "\u0000\u0081\u0080\u0001\u0000\u0000\u0000\u0082\u0085\u0001\u0000\u0000"+ + "\u0000\u0083\u0081\u0001\u0000\u0000\u0000\u0083\u0084\u0001\u0000\u0000"+ + "\u0000\u0084\u0086\u0001\u0000\u0000\u0000\u0085\u0083\u0001\u0000\u0000"+ + "\u0000\u0086\u0087\u0007\u0001\u0000\u0000\u0087\"\u0001\u0000\u0000\u0000"+ + "\u0088\u008a\u0003\'\u0013\u0000\u0089\u008b\u0007\u0002\u0000\u0000\u008a"+ + "\u0089\u0001\u0000\u0000\u0000\u008b\u008c\u0001\u0000\u0000\u0000\u008c"+ + "\u008a\u0001\u0000\u0000\u0000\u008c\u008d\u0001\u0000\u0000\u0000\u008d"+ + "$\u0001\u0000\u0000\u0000\u008e\u0090\u0005\"\u0000\u0000\u008f\u0091"+ + "\u0003)\u0014\u0000\u0090\u008f\u0001\u0000\u0000\u0000\u0090\u0091\u0001"+ + "\u0000\u0000\u0000\u0091\u0092\u0001\u0000\u0000\u0000\u0092\u0093\u0005"+ + "\"\u0000\u0000\u0093&\u0001\u0000\u0000\u0000\u0094\u0096\u0007\u0003"+ + "\u0000\u0000\u0095\u0097\u0007\u0004\u0000\u0000\u0096\u0095\u0001\u0000"+ + "\u0000\u0000\u0096\u0097\u0001\u0000\u0000\u0000\u0097(\u0001\u0000\u0000"+ + "\u0000\u0098\u009b\b\u0005\u0000\u0000\u0099\u009b\u0003-\u0016\u0000"+ + "\u009a\u0098\u0001\u0000\u0000\u0000\u009a\u0099\u0001\u0000\u0000\u0000"+ + "\u009b\u009c\u0001\u0000\u0000\u0000\u009c\u009a\u0001\u0000\u0000\u0000"+ + "\u009c\u009d\u0001\u0000\u0000\u0000\u009d*\u0001\u0000\u0000\u0000\u009e"+ + "\u009f\u0002\u0080\u8000\uffff\u0000\u009f,\u0001\u0000\u0000\u0000\u00a0"+ + "\u00a2\u0005\\\u0000\u0000\u00a1\u00a3\u0007\u0006\u0000\u0000\u00a2\u00a1"+ + "\u0001\u0000\u0000\u0000\u00a2\u00a3\u0001\u0000\u0000\u0000\u00a3.\u0001"+ + "\u0000\u0000\u0000\u00a4\u00a8\u0005\'\u0000\u0000\u00a5\u00a7\b\u0007"+ + "\u0000\u0000\u00a6\u00a5\u0001\u0000\u0000\u0000\u00a7\u00aa\u0001\u0000"+ + "\u0000\u0000\u00a8\u00a6\u0001\u0000\u0000\u0000\u00a8\u00a9\u0001\u0000"+ + "\u0000\u0000\u00a9\u00ab\u0001\u0000\u0000\u0000\u00aa\u00a8\u0001\u0000"+ + "\u0000\u0000\u00ab\u00ac\u0005\'\u0000\u0000\u00ac0\u0001\u0000\u0000"+ + "\u0000\u00ad\u00af\u0007\b\u0000\u0000\u00ae\u00ad\u0001\u0000\u0000\u0000"+ + "\u00af\u00b0\u0001\u0000\u0000\u0000\u00b0\u00ae\u0001\u0000\u0000\u0000"+ + "\u00b0\u00b1\u0001\u0000\u0000\u0000\u00b1\u00b2\u0001\u0000\u0000\u0000"+ + "\u00b2\u00b3\u0006\u0018\u0000\u0000\u00b32\u0001\u0000\u0000\u0000\r"+ + "\u0000w{}\u0083\u008c\u0090\u0096\u009a\u009c\u00a2\u00a8\u00b0\u0001"+ + "\u0006\u0000\u0000"; public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray()); static { diff --git a/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxListener.java b/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxListener.java index 4613194..2cbc2d2 100644 --- a/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxListener.java +++ b/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxListener.java @@ -1,8 +1,4 @@ -// Generated from Nginx.g4 by ANTLR 4.5.3 - - package com.github.odiszapc.nginxparser.antlr; - import com.github.odiszapc.nginxparser.*; - +package com.github.odiszapc.nginxparser.antlr;// Generated from /Volumes/Working/Works/Git Sources/nginx-java-parser/src/main/resources/grammar/Nginx.g4 by ANTLR 4.13.1 import org.antlr.v4.runtime.tree.ParseTreeListener; /** diff --git a/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxParser.java b/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxParser.java index 7610218..76ae2b1 100644 --- a/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxParser.java +++ b/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxParser.java @@ -1,4 +1,4 @@ -// Generated from Nginx.g4 by ANTLR 4.5.3 +// Generated from /Volumes/Working/Works/Git Sources/nginx-java-parser/src/main/resources/grammar/Nginx.g4 by ANTLR 4.13.1 package com.github.odiszapc.nginxparser.antlr; import com.github.odiszapc.nginxparser.*; @@ -12,9 +12,9 @@ import java.util.Iterator; import java.util.ArrayList; -@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue"}) public class NginxParser extends Parser { - static { RuntimeMetaData.checkVersion("4.5.3", RuntimeMetaData.VERSION); } + static { RuntimeMetaData.checkVersion("4.13.1", RuntimeMetaData.VERSION); } protected static final DFA[] _decisionToDFA; protected static final PredictionContextCache _sharedContextCache = @@ -27,21 +27,30 @@ public class NginxParser extends Parser { RULE_config = 0, RULE_statement = 1, RULE_genericStatement = 2, RULE_regexHeaderStatement = 3, RULE_block = 4, RULE_genericBlockHeader = 5, RULE_if_statement = 6, RULE_if_body = 7, RULE_regexp = 8, RULE_locationBlockHeader = 9, RULE_rewriteStatement = 10; - public static final String[] ruleNames = { - "config", "statement", "genericStatement", "regexHeaderStatement", "block", - "genericBlockHeader", "if_statement", "if_body", "regexp", "locationBlockHeader", - "rewriteStatement" - }; + private static String[] makeRuleNames() { + return new String[] { + "config", "statement", "genericStatement", "regexHeaderStatement", "block", + "genericBlockHeader", "if_statement", "if_body", "regexp", "locationBlockHeader", + "rewriteStatement" + }; + } + public static final String[] ruleNames = makeRuleNames(); - private static final String[] _LITERAL_NAMES = { - null, "';'", "'{'", "'}'", "'if'", "'('", "')'", "'\\.'", "'^'", "'location'", - "'rewrite'", "'last'", "'break'", "'redirect'", "'permanent'" - }; - private static final String[] _SYMBOLIC_NAMES = { - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, "Value", "STR_EXT", "Comment", "REGEXP_PREFIXED", "QUOTED_STRING", - "SINGLE_QUOTED", "WS" - }; + private static String[] makeLiteralNames() { + return new String[] { + null, "';'", "'{'", "'}'", "'if'", "'('", "')'", "'\\.'", "'^'", "'location'", + "'rewrite'", "'last'", "'break'", "'redirect'", "'permanent'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, "Value", "STR_EXT", "Comment", "REGEXP_PREFIXED", "QUOTED_STRING", + "SINGLE_QUOTED", "WS" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); /** @@ -91,6 +100,8 @@ public NginxParser(TokenStream input) { super(input); _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); } + + @SuppressWarnings("CheckReturnValue") public static class ConfigContext extends ParserRuleContext { public NgxConfig ret; public StatementContext statement; @@ -173,7 +184,7 @@ public final ConfigContext config() throws RecognitionException { setState(32); _errHandler.sync(this); _la = _input.LA(1); - } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__8) | (1L << T__9) | (1L << Value) | (1L << Comment) | (1L << REGEXP_PREFIXED))) != 0) ); + } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & 427520L) != 0) ); } } catch (RecognitionException re) { @@ -187,6 +198,7 @@ public final ConfigContext config() throws RecognitionException { return _localctx; } + @SuppressWarnings("CheckReturnValue") public static class StatementContext extends ParserRuleContext { public NgxParam ret; public RewriteStatementContext rewriteStatement; @@ -227,6 +239,7 @@ public final StatementContext statement() throws RecognitionException { enterOuterAlt(_localctx, 1); { setState(43); + _errHandler.sync(this); switch (_input.LA(1)) { case T__9: { @@ -267,6 +280,7 @@ public final StatementContext statement() throws RecognitionException { return _localctx; } + @SuppressWarnings("CheckReturnValue") public static class GenericStatementContext extends ParserRuleContext { public NgxParam ret; public Token Value; @@ -314,7 +328,7 @@ public final GenericStatementContext genericStatement() throws RecognitionExcept setState(56); _errHandler.sync(this); _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__4) | (1L << T__6) | (1L << T__7) | (1L << Value))) != 0)) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 33184L) != 0)) { { setState(54); _errHandler.sync(this); @@ -352,6 +366,7 @@ public final GenericStatementContext genericStatement() throws RecognitionExcept return _localctx; } + @SuppressWarnings("CheckReturnValue") public static class RegexHeaderStatementContext extends ParserRuleContext { public NgxParam ret; public Token REGEXP_PREFIXED; @@ -403,6 +418,7 @@ public final RegexHeaderStatementContext regexHeaderStatement() throws Recogniti return _localctx; } + @SuppressWarnings("CheckReturnValue") public static class BlockContext extends ParserRuleContext { public NgxBlock ret; public LocationBlockHeaderContext locationBlockHeader; @@ -467,6 +483,7 @@ public final BlockContext block() throws RecognitionException { enterOuterAlt(_localctx, 1); { setState(70); + _errHandler.sync(this); switch (_input.LA(1)) { case T__8: { @@ -486,6 +503,7 @@ public final BlockContext block() throws RecognitionException { throw new NoViableAltException(this); } setState(73); + _errHandler.sync(this); _la = _input.LA(1); if (_la==Comment) { { @@ -499,7 +517,7 @@ public final BlockContext block() throws RecognitionException { setState(89); _errHandler.sync(this); _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__3) | (1L << T__8) | (1L << T__9) | (1L << Value) | (1L << Comment) | (1L << REGEXP_PREFIXED))) != 0)) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 427536L) != 0)) { { setState(87); _errHandler.sync(this); @@ -553,6 +571,7 @@ public final BlockContext block() throws RecognitionException { return _localctx; } + @SuppressWarnings("CheckReturnValue") public static class GenericBlockHeaderContext extends ParserRuleContext { public List ret; public Token Value; @@ -600,7 +619,7 @@ public final GenericBlockHeaderContext genericBlockHeader() throws RecognitionEx setState(103); _errHandler.sync(this); _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__4) | (1L << T__6) | (1L << T__7) | (1L << Value))) != 0)) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 33184L) != 0)) { { setState(101); _errHandler.sync(this); @@ -638,6 +657,7 @@ public final GenericBlockHeaderContext genericBlockHeader() throws RecognitionEx return _localctx; } + @SuppressWarnings("CheckReturnValue") public static class If_statementContext extends ParserRuleContext { public NgxIfBlock ret; public Token id; @@ -687,6 +707,7 @@ public final If_statementContext if_statement() throws RecognitionException { ((If_statementContext)_localctx).if_body = if_body(); _localctx.ret.getTokens().addAll(((If_statementContext)_localctx).if_body.ret); setState(111); + _errHandler.sync(this); _la = _input.LA(1); if (_la==Comment) { { @@ -700,7 +721,7 @@ public final If_statementContext if_statement() throws RecognitionException { setState(119); _errHandler.sync(this); _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__9) | (1L << Value) | (1L << REGEXP_PREFIXED))) != 0)) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 295936L) != 0)) { { { setState(114); @@ -727,6 +748,7 @@ public final If_statementContext if_statement() throws RecognitionException { return _localctx; } + @SuppressWarnings("CheckReturnValue") public static class If_bodyContext extends ParserRuleContext { public List ret; public Token Value; @@ -813,6 +835,7 @@ public final If_bodyContext if_body() throws RecognitionException { return _localctx; } + @SuppressWarnings("CheckReturnValue") public static class RegexpContext extends ParserRuleContext { public String ret; public Token id; @@ -863,6 +886,7 @@ public final RegexpContext regexp() throws RecognitionException { case 1: { setState(151); + _errHandler.sync(this); switch (_input.LA(1)) { case T__6: { @@ -907,7 +931,7 @@ public final RegexpContext regexp() throws RecognitionException { setState(153); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,16,_ctx); - } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + } while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ); } } catch (RecognitionException re) { @@ -921,6 +945,7 @@ public final RegexpContext regexp() throws RecognitionException { return _localctx; } + @SuppressWarnings("CheckReturnValue") public static class LocationBlockHeaderContext extends ParserRuleContext { public List ret; public Token id; @@ -1004,6 +1029,7 @@ public final LocationBlockHeaderContext locationBlockHeader() throws Recognition return _localctx; } + @SuppressWarnings("CheckReturnValue") public static class RewriteStatementContext extends ParserRuleContext { public NgxParam ret; public Token id; @@ -1069,15 +1095,19 @@ public final RewriteStatementContext rewriteStatement() throws RecognitionExcept ((RewriteStatementContext)_localctx).Value = match(Value); _localctx.ret.addValue((((RewriteStatementContext)_localctx).Value!=null?((RewriteStatementContext)_localctx).Value.getText():null)); setState(181); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__10) | (1L << T__11) | (1L << T__12) | (1L << T__13))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 30720L) != 0)) { { setState(179); ((RewriteStatementContext)_localctx).opt = _input.LT(1); _la = _input.LA(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__10) | (1L << T__11) | (1L << T__12) | (1L << T__13))) != 0)) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 30720L) != 0)) ) { ((RewriteStatementContext)_localctx).opt = (Token)_errHandler.recoverInline(this); - } else { + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); consume(); } _localctx.ret.addValue((((RewriteStatementContext)_localctx).opt!=null?((RewriteStatementContext)_localctx).opt.getText():null)); @@ -1098,61 +1128,123 @@ public final RewriteStatementContext rewriteStatement() throws RecognitionExcept } public static final String _serializedATN = - "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3\27\u00ba\4\2\t\2"+ - "\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ - "\t\13\4\f\t\f\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\6\2!\n\2\r\2\16\2\"\3\3"+ - "\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\5\3.\n\3\3\3\3\3\3\4\3\4\3\4\3\4\3\4"+ - "\3\4\3\4\7\49\n\4\f\4\16\4<\13\4\3\5\3\5\3\5\3\5\3\5\3\6\3\6\3\6\3\6\3"+ - "\6\3\6\5\6I\n\6\3\6\5\6L\n\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3"+ - "\6\3\6\7\6Z\n\6\f\6\16\6]\13\6\3\6\3\6\3\7\3\7\3\7\3\7\3\7\3\7\3\7\7\7"+ - "h\n\7\f\7\16\7k\13\7\3\b\3\b\3\b\3\b\3\b\5\br\n\b\3\b\3\b\3\b\3\b\7\b"+ - "x\n\b\f\b\16\b{\13\b\3\b\3\b\3\t\3\t\3\t\3\t\3\t\5\t\u0084\n\t\3\t\3\t"+ - "\3\t\3\t\3\t\5\t\u008b\n\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n"+ - "\3\n\3\n\6\n\u009a\n\n\r\n\16\n\u009b\3\13\3\13\3\13\3\13\5\13\u00a2\n"+ - "\13\3\13\3\13\3\13\3\13\3\13\5\13\u00a9\n\13\3\f\3\f\3\f\3\f\3\f\3\f\3"+ - "\f\5\f\u00b2\n\f\3\f\3\f\3\f\3\f\5\f\u00b8\n\f\3\f\2\2\r\2\4\6\b\n\f\16"+ - "\20\22\24\26\2\3\3\2\r\20\u00ca\2 \3\2\2\2\4-\3\2\2\2\6\61\3\2\2\2\b="+ - "\3\2\2\2\nH\3\2\2\2\f`\3\2\2\2\16l\3\2\2\2\20~\3\2\2\2\22\u0099\3\2\2"+ - "\2\24\u009d\3\2\2\2\26\u00aa\3\2\2\2\30\31\5\4\3\2\31\32\b\2\1\2\32!\3"+ - "\2\2\2\33\34\5\n\6\2\34\35\b\2\1\2\35!\3\2\2\2\36\37\7\23\2\2\37!\b\2"+ - "\1\2 \30\3\2\2\2 \33\3\2\2\2 \36\3\2\2\2!\"\3\2\2\2\" \3\2\2\2\"#\3\2"+ - "\2\2#\3\3\2\2\2$%\5\26\f\2%&\b\3\1\2&.\3\2\2\2\'(\5\6\4\2()\b\3\1\2)."+ - "\3\2\2\2*+\5\b\5\2+,\b\3\1\2,.\3\2\2\2-$\3\2\2\2-\'\3\2\2\2-*\3\2\2\2"+ - "./\3\2\2\2/\60\7\3\2\2\60\5\3\2\2\2\61\62\7\21\2\2\62:\b\4\1\2\63\64\7"+ - "\21\2\2\649\b\4\1\2\65\66\5\22\n\2\66\67\b\4\1\2\679\3\2\2\28\63\3\2\2"+ - "\28\65\3\2\2\29<\3\2\2\2:8\3\2\2\2:;\3\2\2\2;\7\3\2\2\2<:\3\2\2\2=>\7"+ - "\24\2\2>?\b\5\1\2?@\7\21\2\2@A\b\5\1\2A\t\3\2\2\2BC\5\24\13\2CD\b\6\1"+ - "\2DI\3\2\2\2EF\5\f\7\2FG\b\6\1\2GI\3\2\2\2HB\3\2\2\2HE\3\2\2\2IK\3\2\2"+ - "\2JL\7\23\2\2KJ\3\2\2\2KL\3\2\2\2LM\3\2\2\2M[\7\4\2\2NO\5\4\3\2OP\b\6"+ - "\1\2PZ\3\2\2\2QR\5\n\6\2RS\b\6\1\2SZ\3\2\2\2TU\5\16\b\2UV\b\6\1\2VZ\3"+ - "\2\2\2WX\7\23\2\2XZ\b\6\1\2YN\3\2\2\2YQ\3\2\2\2YT\3\2\2\2YW\3\2\2\2Z]"+ - "\3\2\2\2[Y\3\2\2\2[\\\3\2\2\2\\^\3\2\2\2][\3\2\2\2^_\7\5\2\2_\13\3\2\2"+ - "\2`a\7\21\2\2ai\b\7\1\2bc\7\21\2\2ch\b\7\1\2de\5\22\n\2ef\b\7\1\2fh\3"+ - "\2\2\2gb\3\2\2\2gd\3\2\2\2hk\3\2\2\2ig\3\2\2\2ij\3\2\2\2j\r\3\2\2\2ki"+ - "\3\2\2\2lm\7\6\2\2mn\b\b\1\2no\5\20\t\2oq\b\b\1\2pr\7\23\2\2qp\3\2\2\2"+ - "qr\3\2\2\2rs\3\2\2\2sy\7\4\2\2tu\5\4\3\2uv\b\b\1\2vx\3\2\2\2wt\3\2\2\2"+ - "x{\3\2\2\2yw\3\2\2\2yz\3\2\2\2z|\3\2\2\2{y\3\2\2\2|}\7\5\2\2}\17\3\2\2"+ - "\2~\177\7\7\2\2\177\u0080\7\21\2\2\u0080\u0083\b\t\1\2\u0081\u0082\7\21"+ - "\2\2\u0082\u0084\b\t\1\2\u0083\u0081\3\2\2\2\u0083\u0084\3\2\2\2\u0084"+ - "\u008a\3\2\2\2\u0085\u0086\7\21\2\2\u0086\u008b\b\t\1\2\u0087\u0088\5"+ - "\22\n\2\u0088\u0089\b\t\1\2\u0089\u008b\3\2\2\2\u008a\u0085\3\2\2\2\u008a"+ - "\u0087\3\2\2\2\u008a\u008b\3\2\2\2\u008b\u008c\3\2\2\2\u008c\u008d\7\b"+ - "\2\2\u008d\21\3\2\2\2\u008e\u008f\7\t\2\2\u008f\u009a\b\n\1\2\u0090\u0091"+ - "\7\n\2\2\u0091\u009a\b\n\1\2\u0092\u0093\7\21\2\2\u0093\u009a\b\n\1\2"+ - "\u0094\u0095\7\7\2\2\u0095\u0096\5\22\n\2\u0096\u0097\b\n\1\2\u0097\u0098"+ - "\7\b\2\2\u0098\u009a\3\2\2\2\u0099\u008e\3\2\2\2\u0099\u0090\3\2\2\2\u0099"+ - "\u0092\3\2\2\2\u0099\u0094\3\2\2\2\u009a\u009b\3\2\2\2\u009b\u0099\3\2"+ - "\2\2\u009b\u009c\3\2\2\2\u009c\23\3\2\2\2\u009d\u009e\7\13\2\2\u009e\u00a1"+ - "\b\13\1\2\u009f\u00a0\7\21\2\2\u00a0\u00a2\b\13\1\2\u00a1\u009f\3\2\2"+ - "\2\u00a1\u00a2\3\2\2\2\u00a2\u00a8\3\2\2\2\u00a3\u00a4\7\21\2\2\u00a4"+ - "\u00a9\b\13\1\2\u00a5\u00a6\5\22\n\2\u00a6\u00a7\b\13\1\2\u00a7\u00a9"+ - "\3\2\2\2\u00a8\u00a3\3\2\2\2\u00a8\u00a5\3\2\2\2\u00a9\25\3\2\2\2\u00aa"+ - "\u00ab\7\f\2\2\u00ab\u00b1\b\f\1\2\u00ac\u00ad\7\21\2\2\u00ad\u00b2\b"+ - "\f\1\2\u00ae\u00af\5\22\n\2\u00af\u00b0\b\f\1\2\u00b0\u00b2\3\2\2\2\u00b1"+ - "\u00ac\3\2\2\2\u00b1\u00ae\3\2\2\2\u00b2\u00b3\3\2\2\2\u00b3\u00b4\7\21"+ - "\2\2\u00b4\u00b7\b\f\1\2\u00b5\u00b6\t\2\2\2\u00b6\u00b8\b\f\1\2\u00b7"+ - "\u00b5\3\2\2\2\u00b7\u00b8\3\2\2\2\u00b8\27\3\2\2\2\27 \"-8:HKY[giqy\u0083"+ - "\u008a\u0099\u009b\u00a1\u00a8\u00b1\u00b7"; + "\u0004\u0001\u0015\u00b8\u0002\u0000\u0007\u0000\u0002\u0001\u0007\u0001"+ + "\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004\u0007\u0004"+ + "\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007\u0007\u0007"+ + "\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0001\u0000\u0001\u0000"+ + "\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000"+ + "\u0004\u0000\u001f\b\u0000\u000b\u0000\f\u0000 \u0001\u0001\u0001\u0001"+ + "\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001"+ + "\u0001\u0001\u0003\u0001,\b\u0001\u0001\u0001\u0001\u0001\u0001\u0002"+ + "\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002"+ + "\u0005\u00027\b\u0002\n\u0002\f\u0002:\t\u0002\u0001\u0003\u0001\u0003"+ + "\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0003\u0004G\b\u0004\u0001\u0004"+ + "\u0003\u0004J\b\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0005\u0004X\b\u0004\n\u0004\f\u0004[\t\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005"+ + "\u0001\u0005\u0001\u0005\u0001\u0005\u0005\u0005f\b\u0005\n\u0005\f\u0005"+ + "i\t\u0005\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006"+ + "\u0003\u0006p\b\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006"+ + "\u0005\u0006v\b\u0006\n\u0006\f\u0006y\t\u0006\u0001\u0006\u0001\u0006"+ + "\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0003\u0007"+ + "\u0082\b\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007"+ + "\u0003\u0007\u0089\b\u0007\u0001\u0007\u0001\u0007\u0001\b\u0001\b\u0001"+ + "\b\u0001\b\u0001\b\u0001\b\u0001\b\u0001\b\u0001\b\u0001\b\u0001\b\u0004"+ + "\b\u0098\b\b\u000b\b\f\b\u0099\u0001\t\u0001\t\u0001\t\u0001\t\u0003\t"+ + "\u00a0\b\t\u0001\t\u0001\t\u0001\t\u0001\t\u0001\t\u0003\t\u00a7\b\t\u0001"+ + "\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0003\n\u00b0\b\n\u0001"+ + "\n\u0001\n\u0001\n\u0001\n\u0003\n\u00b6\b\n\u0001\n\u0000\u0000\u000b"+ + "\u0000\u0002\u0004\u0006\b\n\f\u000e\u0010\u0012\u0014\u0000\u0001\u0001"+ + "\u0000\u000b\u000e\u00c8\u0000\u001e\u0001\u0000\u0000\u0000\u0002+\u0001"+ + "\u0000\u0000\u0000\u0004/\u0001\u0000\u0000\u0000\u0006;\u0001\u0000\u0000"+ + "\u0000\bF\u0001\u0000\u0000\u0000\n^\u0001\u0000\u0000\u0000\fj\u0001"+ + "\u0000\u0000\u0000\u000e|\u0001\u0000\u0000\u0000\u0010\u0097\u0001\u0000"+ + "\u0000\u0000\u0012\u009b\u0001\u0000\u0000\u0000\u0014\u00a8\u0001\u0000"+ + "\u0000\u0000\u0016\u0017\u0003\u0002\u0001\u0000\u0017\u0018\u0006\u0000"+ + "\uffff\uffff\u0000\u0018\u001f\u0001\u0000\u0000\u0000\u0019\u001a\u0003"+ + "\b\u0004\u0000\u001a\u001b\u0006\u0000\uffff\uffff\u0000\u001b\u001f\u0001"+ + "\u0000\u0000\u0000\u001c\u001d\u0005\u0011\u0000\u0000\u001d\u001f\u0006"+ + "\u0000\uffff\uffff\u0000\u001e\u0016\u0001\u0000\u0000\u0000\u001e\u0019"+ + "\u0001\u0000\u0000\u0000\u001e\u001c\u0001\u0000\u0000\u0000\u001f \u0001"+ + "\u0000\u0000\u0000 \u001e\u0001\u0000\u0000\u0000 !\u0001\u0000\u0000"+ + "\u0000!\u0001\u0001\u0000\u0000\u0000\"#\u0003\u0014\n\u0000#$\u0006\u0001"+ + "\uffff\uffff\u0000$,\u0001\u0000\u0000\u0000%&\u0003\u0004\u0002\u0000"+ + "&\'\u0006\u0001\uffff\uffff\u0000\',\u0001\u0000\u0000\u0000()\u0003\u0006"+ + "\u0003\u0000)*\u0006\u0001\uffff\uffff\u0000*,\u0001\u0000\u0000\u0000"+ + "+\"\u0001\u0000\u0000\u0000+%\u0001\u0000\u0000\u0000+(\u0001\u0000\u0000"+ + "\u0000,-\u0001\u0000\u0000\u0000-.\u0005\u0001\u0000\u0000.\u0003\u0001"+ + "\u0000\u0000\u0000/0\u0005\u000f\u0000\u000008\u0006\u0002\uffff\uffff"+ + "\u000012\u0005\u000f\u0000\u000027\u0006\u0002\uffff\uffff\u000034\u0003"+ + "\u0010\b\u000045\u0006\u0002\uffff\uffff\u000057\u0001\u0000\u0000\u0000"+ + "61\u0001\u0000\u0000\u000063\u0001\u0000\u0000\u00007:\u0001\u0000\u0000"+ + "\u000086\u0001\u0000\u0000\u000089\u0001\u0000\u0000\u00009\u0005\u0001"+ + "\u0000\u0000\u0000:8\u0001\u0000\u0000\u0000;<\u0005\u0012\u0000\u0000"+ + "<=\u0006\u0003\uffff\uffff\u0000=>\u0005\u000f\u0000\u0000>?\u0006\u0003"+ + "\uffff\uffff\u0000?\u0007\u0001\u0000\u0000\u0000@A\u0003\u0012\t\u0000"+ + "AB\u0006\u0004\uffff\uffff\u0000BG\u0001\u0000\u0000\u0000CD\u0003\n\u0005"+ + "\u0000DE\u0006\u0004\uffff\uffff\u0000EG\u0001\u0000\u0000\u0000F@\u0001"+ + "\u0000\u0000\u0000FC\u0001\u0000\u0000\u0000GI\u0001\u0000\u0000\u0000"+ + "HJ\u0005\u0011\u0000\u0000IH\u0001\u0000\u0000\u0000IJ\u0001\u0000\u0000"+ + "\u0000JK\u0001\u0000\u0000\u0000KY\u0005\u0002\u0000\u0000LM\u0003\u0002"+ + "\u0001\u0000MN\u0006\u0004\uffff\uffff\u0000NX\u0001\u0000\u0000\u0000"+ + "OP\u0003\b\u0004\u0000PQ\u0006\u0004\uffff\uffff\u0000QX\u0001\u0000\u0000"+ + "\u0000RS\u0003\f\u0006\u0000ST\u0006\u0004\uffff\uffff\u0000TX\u0001\u0000"+ + "\u0000\u0000UV\u0005\u0011\u0000\u0000VX\u0006\u0004\uffff\uffff\u0000"+ + "WL\u0001\u0000\u0000\u0000WO\u0001\u0000\u0000\u0000WR\u0001\u0000\u0000"+ + "\u0000WU\u0001\u0000\u0000\u0000X[\u0001\u0000\u0000\u0000YW\u0001\u0000"+ + "\u0000\u0000YZ\u0001\u0000\u0000\u0000Z\\\u0001\u0000\u0000\u0000[Y\u0001"+ + "\u0000\u0000\u0000\\]\u0005\u0003\u0000\u0000]\t\u0001\u0000\u0000\u0000"+ + "^_\u0005\u000f\u0000\u0000_g\u0006\u0005\uffff\uffff\u0000`a\u0005\u000f"+ + "\u0000\u0000af\u0006\u0005\uffff\uffff\u0000bc\u0003\u0010\b\u0000cd\u0006"+ + "\u0005\uffff\uffff\u0000df\u0001\u0000\u0000\u0000e`\u0001\u0000\u0000"+ + "\u0000eb\u0001\u0000\u0000\u0000fi\u0001\u0000\u0000\u0000ge\u0001\u0000"+ + "\u0000\u0000gh\u0001\u0000\u0000\u0000h\u000b\u0001\u0000\u0000\u0000"+ + "ig\u0001\u0000\u0000\u0000jk\u0005\u0004\u0000\u0000kl\u0006\u0006\uffff"+ + "\uffff\u0000lm\u0003\u000e\u0007\u0000mo\u0006\u0006\uffff\uffff\u0000"+ + "np\u0005\u0011\u0000\u0000on\u0001\u0000\u0000\u0000op\u0001\u0000\u0000"+ + "\u0000pq\u0001\u0000\u0000\u0000qw\u0005\u0002\u0000\u0000rs\u0003\u0002"+ + "\u0001\u0000st\u0006\u0006\uffff\uffff\u0000tv\u0001\u0000\u0000\u0000"+ + "ur\u0001\u0000\u0000\u0000vy\u0001\u0000\u0000\u0000wu\u0001\u0000\u0000"+ + "\u0000wx\u0001\u0000\u0000\u0000xz\u0001\u0000\u0000\u0000yw\u0001\u0000"+ + "\u0000\u0000z{\u0005\u0003\u0000\u0000{\r\u0001\u0000\u0000\u0000|}\u0005"+ + "\u0005\u0000\u0000}~\u0005\u000f\u0000\u0000~\u0081\u0006\u0007\uffff"+ + "\uffff\u0000\u007f\u0080\u0005\u000f\u0000\u0000\u0080\u0082\u0006\u0007"+ + "\uffff\uffff\u0000\u0081\u007f\u0001\u0000\u0000\u0000\u0081\u0082\u0001"+ + "\u0000\u0000\u0000\u0082\u0088\u0001\u0000\u0000\u0000\u0083\u0084\u0005"+ + "\u000f\u0000\u0000\u0084\u0089\u0006\u0007\uffff\uffff\u0000\u0085\u0086"+ + "\u0003\u0010\b\u0000\u0086\u0087\u0006\u0007\uffff\uffff\u0000\u0087\u0089"+ + "\u0001\u0000\u0000\u0000\u0088\u0083\u0001\u0000\u0000\u0000\u0088\u0085"+ + "\u0001\u0000\u0000\u0000\u0088\u0089\u0001\u0000\u0000\u0000\u0089\u008a"+ + "\u0001\u0000\u0000\u0000\u008a\u008b\u0005\u0006\u0000\u0000\u008b\u000f"+ + "\u0001\u0000\u0000\u0000\u008c\u008d\u0005\u0007\u0000\u0000\u008d\u0098"+ + "\u0006\b\uffff\uffff\u0000\u008e\u008f\u0005\b\u0000\u0000\u008f\u0098"+ + "\u0006\b\uffff\uffff\u0000\u0090\u0091\u0005\u000f\u0000\u0000\u0091\u0098"+ + "\u0006\b\uffff\uffff\u0000\u0092\u0093\u0005\u0005\u0000\u0000\u0093\u0094"+ + "\u0003\u0010\b\u0000\u0094\u0095\u0006\b\uffff\uffff\u0000\u0095\u0096"+ + "\u0005\u0006\u0000\u0000\u0096\u0098\u0001\u0000\u0000\u0000\u0097\u008c"+ + "\u0001\u0000\u0000\u0000\u0097\u008e\u0001\u0000\u0000\u0000\u0097\u0090"+ + "\u0001\u0000\u0000\u0000\u0097\u0092\u0001\u0000\u0000\u0000\u0098\u0099"+ + "\u0001\u0000\u0000\u0000\u0099\u0097\u0001\u0000\u0000\u0000\u0099\u009a"+ + "\u0001\u0000\u0000\u0000\u009a\u0011\u0001\u0000\u0000\u0000\u009b\u009c"+ + "\u0005\t\u0000\u0000\u009c\u009f\u0006\t\uffff\uffff\u0000\u009d\u009e"+ + "\u0005\u000f\u0000\u0000\u009e\u00a0\u0006\t\uffff\uffff\u0000\u009f\u009d"+ + "\u0001\u0000\u0000\u0000\u009f\u00a0\u0001\u0000\u0000\u0000\u00a0\u00a6"+ + "\u0001\u0000\u0000\u0000\u00a1\u00a2\u0005\u000f\u0000\u0000\u00a2\u00a7"+ + "\u0006\t\uffff\uffff\u0000\u00a3\u00a4\u0003\u0010\b\u0000\u00a4\u00a5"+ + "\u0006\t\uffff\uffff\u0000\u00a5\u00a7\u0001\u0000\u0000\u0000\u00a6\u00a1"+ + "\u0001\u0000\u0000\u0000\u00a6\u00a3\u0001\u0000\u0000\u0000\u00a7\u0013"+ + "\u0001\u0000\u0000\u0000\u00a8\u00a9\u0005\n\u0000\u0000\u00a9\u00af\u0006"+ + "\n\uffff\uffff\u0000\u00aa\u00ab\u0005\u000f\u0000\u0000\u00ab\u00b0\u0006"+ + "\n\uffff\uffff\u0000\u00ac\u00ad\u0003\u0010\b\u0000\u00ad\u00ae\u0006"+ + "\n\uffff\uffff\u0000\u00ae\u00b0\u0001\u0000\u0000\u0000\u00af\u00aa\u0001"+ + "\u0000\u0000\u0000\u00af\u00ac\u0001\u0000\u0000\u0000\u00b0\u00b1\u0001"+ + "\u0000\u0000\u0000\u00b1\u00b2\u0005\u000f\u0000\u0000\u00b2\u00b5\u0006"+ + "\n\uffff\uffff\u0000\u00b3\u00b4\u0007\u0000\u0000\u0000\u00b4\u00b6\u0006"+ + "\n\uffff\uffff\u0000\u00b5\u00b3\u0001\u0000\u0000\u0000\u00b5\u00b6\u0001"+ + "\u0000\u0000\u0000\u00b6\u0015\u0001\u0000\u0000\u0000\u0015\u001e +6"+ + "8FIWYegow\u0081\u0088\u0097\u0099\u009f\u00a6\u00af\u00b5"; public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray()); static { diff --git a/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxVisitor.java b/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxVisitor.java index d7e3666..9481c07 100644 --- a/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxVisitor.java +++ b/src/main/java/com/github/odiszapc/nginxparser/antlr/NginxVisitor.java @@ -1,8 +1,4 @@ -// Generated from Nginx.g4 by ANTLR 4.5.3 - - package com.github.odiszapc.nginxparser.antlr; - import com.github.odiszapc.nginxparser.*; - +package com.github.odiszapc.nginxparser.antlr;// Generated from /Volumes/Working/Works/Git Sources/nginx-java-parser/src/main/resources/grammar/Nginx.g4 by ANTLR 4.13.1 import org.antlr.v4.runtime.tree.ParseTreeVisitor; /** diff --git a/src/main/resources/grammar/Nginx.g4 b/src/main/resources/grammar/Nginx.g4 index 2e35262..8c47c19 100644 --- a/src/main/resources/grammar/Nginx.g4 +++ b/src/main/resources/grammar/Nginx.g4 @@ -146,14 +146,16 @@ Value: STR_EXT | QUOTED_STRING | SINGLE_QUOTED STR_EXT : - ([a-zA-Z0-9_/\.,\-:=~+!?$&^*\[\]@|#] | NON_ASCII)+; + ([a-zA-Z0-9_/\\.,\-:=~+!?$&^*[\]@|#] | NON_ASCII)+ + ; Comment : - '#' ~[\r\n]*; + '#' ~[\r\n]*[\r\n] + ; REGEXP_PREFIXED - : (RegexpPrefix)[a-zA-Z0-9_/\.,\-:=~+!?$&^*\[\]@|#)(]+ + : (RegexpPrefix)[a-zA-Z0-9_/\\.,\-:=~+!?$&^*[\]@|#)(]+ ; QUOTED_STRING diff --git a/src/test/java/com/github/odiszapc/nginxparser/CommonTest.java b/src/test/java/com/github/odiszapc/nginxparser/CommonTest.java index 5982734..fd24b97 100644 --- a/src/test/java/com/github/odiszapc/nginxparser/CommonTest.java +++ b/src/test/java/com/github/odiszapc/nginxparser/CommonTest.java @@ -55,6 +55,7 @@ public void testC3() throws Exception { assertParam(it.next(), "user", "nginx"); assertComment(it.next(), "worker_processes 2;"); + assertComment(it.next(), "comment not end with semicolon"); assertParam(it.next(), "worker_priority", "-10"); assertParam(it.next(), "proxy_pass", "http://unix:/opt/apps/ipn/ipn.sock:/"); Assert.assertFalse(it.hasNext()); diff --git a/src/test/java/com/github/odiszapc/nginxparser/DumperTest.java b/src/test/java/com/github/odiszapc/nginxparser/DumperTest.java index 5a66da6..e3786fd 100644 --- a/src/test/java/com/github/odiszapc/nginxparser/DumperTest.java +++ b/src/test/java/com/github/odiszapc/nginxparser/DumperTest.java @@ -49,6 +49,7 @@ public void testC3() throws Exception { final String expected = "" + "user nginx;\n" + "#worker_processes 2;\n" + + "#comment not end with semicolon\n"+ "worker_priority -10;\n" + "proxy_pass http://unix:/opt/apps/ipn/ipn.sock:/;\n"; Assert.assertEquals(expected, TestUtils.dump("common/c3.conf")); diff --git a/src/test/resources/common/c3.conf b/src/test/resources/common/c3.conf index 168c781..2813411 100644 --- a/src/test/resources/common/c3.conf +++ b/src/test/resources/common/c3.conf @@ -1,4 +1,5 @@ user nginx; #worker_processes 2; +#comment not end with semicolon worker_priority -10; proxy_pass http://unix:/opt/apps/ipn/ipn.sock:/; \ No newline at end of file