private boolean makeSyntaxRule(CTX ctx, List<Token> tls, int s, int e, List<Token> adst) { String nameid = null; for (int i = s; i < e; i++) { Token tk = tls.get(i); if (tk.tt == TK.INDENT) continue; if (tk.tt == TK.TEXT) { int[] ia = new int[] {i}; if (checkNestedSyntax(ctx, tls, ia, e, TK.AST_PARENTHESIS, '(', ')') || checkNestedSyntax(ctx, tls, ia, e, TK.AST_BRANCET, '[', ']') || checkNestedSyntax(ctx, tls, ia, e, TK.AST_BRACE, '{', '}')) { i = ia[0]; } else { tk.tt = TK.CODE; tk.kw = tk.text; } adst.add(tk); continue; } if (tk.tt == TK.SYMBOL || tk.tt == TK.USYMBOL) { if (i > 0 && tls.get(i - 1).topch == '$') { tk.kw = "$" + tk.text; tk.tt = TK.METANAME; if (nameid == null) nameid = tk.kw; tk.nameid = nameid; nameid = null; adst.add(tk); continue; } if (i + 1 < e && tls.get(i + 1).topch == ':') { nameid = tls.get(i).text; i++; continue; } } if (tk.tt == TK.OPERATOR) { int[] ia = new int[] {i}; if (checkNestedSyntax(ctx, tls, ia, e, TK.AST_OPTIONAL, '[', ']')) { adst.add(tk); i = ia[0]; continue; } if (tls.get(i).topch == '$') continue; } return false; } return true; }