This is an automated email from the ASF dual-hosted git repository. joshtynjala pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/royale-compiler.git
commit d300191d02aa97d7639d3d49eb43e67a14954484 Author: Josh Tynjala <[email protected]> AuthorDate: Wed Apr 24 10:56:21 2024 -0700 CSSDocument: fix missing lexer problems that were lost in commit 1c9dca4a76ddca724accd1f814aac9d91b64dd62 The lexer won't report any errors until parser.stylesheet() returns --- .../royale/compiler/internal/css/CSSDocument.java | 41 +++++++++++----------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/css/CSSDocument.java b/compiler/src/main/java/org/apache/royale/compiler/internal/css/CSSDocument.java index 8e9c7c925..6327e374c 100644 --- a/compiler/src/main/java/org/apache/royale/compiler/internal/css/CSSDocument.java +++ b/compiler/src/main/java/org/apache/royale/compiler/internal/css/CSSDocument.java @@ -73,33 +73,32 @@ public class CSSDocument extends CSSNodeBase implements ICSSDocument // parse and build tree final CSSLexer lexer = new CSSLexer(input); final CommonTokenStream tokens = new CommonTokenStream(lexer); + final CSSParser parser = new CSSParser(tokens); + final CSSParser.stylesheet_return stylesheet = parser.stylesheet(); + // both lexer and parser woon't have problems until after + // parser.stylesheet() returns problems.addAll(lexer.problems); - if (!hasErrors(lexer.problems)) + problems.addAll(parser.problems); + if (!hasErrors(lexer.problems) && !hasErrors(parser.problems)) { - final CSSParser parser = new CSSParser(tokens); - final CSSParser.stylesheet_return stylesheet = parser.stylesheet(); - problems.addAll(parser.problems); - if (!hasErrors(parser.problems)) + CommonTree ast = (CommonTree)stylesheet.getTree(); + if (ast == null) { - CommonTree ast = (CommonTree)stylesheet.getTree(); - if (ast == null) - { - // may be null if the input contains only comments -JT - // apache/royale-compiler#1218 - ast = new CommonTree(); - } - final CommonTreeNodeStream nodes = new CommonTreeNodeStream(ast); - nodes.setTokenStream(tokens); + // may be null if the input contains only comments -JT + // apache/royale-compiler#1218 + ast = new CommonTree(); + } + final CommonTreeNodeStream nodes = new CommonTreeNodeStream(ast); + nodes.setTokenStream(tokens); - // walk the tree and build definitions - final CSSTree treeWalker = new CSSTree(nodes); - treeWalker.stylesheet(); + // walk the tree and build definitions + final CSSTree treeWalker = new CSSTree(nodes); + treeWalker.stylesheet(); - problems.addAll(treeWalker.problems); + problems.addAll(treeWalker.problems); - // definition models - return treeWalker.model; - } + // definition models + return treeWalker.model; } return null; }
