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;
         }

Reply via email to