removed out.println() usages
[fedora-idea.git] / lang-impl / src / com / intellij / codeInsight / template / impl / TemplateImplUtil.java
blob934f77d4b180fe60d821e14ac7c077849042cc29
1 package com.intellij.codeInsight.template.impl;
3 import com.intellij.codeInsight.template.Expression;
4 import com.intellij.psi.tree.IElementType;
5 import com.intellij.util.text.CharArrayUtil;
7 import java.util.ArrayList;
8 import java.util.Set;
10 import org.jetbrains.annotations.NonNls;
12 /**
13 * Created by IntelliJ IDEA.
14 * User: Maxim.Mossienko
15 * Date: Mar 19, 2004
16 * Time: 1:28:54 PM
17 * To change this template use File | Settings | File Templates.
19 public class TemplateImplUtil {
20 public static boolean validateTemplateText(String s) {
21 TemplateTextLexer lexer = new TemplateTextLexer();
22 lexer.start(s,0,s.length(),0);
23 int end = -1;
24 while(true){
25 IElementType tokenType = lexer.getTokenType();
26 if (tokenType == null) break;
27 int start = lexer.getTokenStart();
28 if (tokenType == TemplateTokenType.VARIABLE){
29 if (start == end) return false;
30 end = lexer.getTokenEnd();
31 } else {
32 end = -1;
34 lexer.advance();
36 return true;
39 public static void parseVariables(CharSequence text, ArrayList variables, Set predefinedVars) {
40 TemplateTextLexer lexer = new TemplateTextLexer();
41 lexer.start(text, 0, text.length(),0);
43 while(true){
44 IElementType tokenType = lexer.getTokenType();
45 if (tokenType == null) break;
46 int start = lexer.getTokenStart();
47 int end = lexer.getTokenEnd();
48 String token = text.subSequence(start, end).toString();
49 if (tokenType == TemplateTokenType.VARIABLE){
50 String name = token.substring(1, token.length() - 1);
51 boolean isFound = false;
53 if (predefinedVars!=null && predefinedVars.contains(name) && !name.equals(TemplateImpl.SELECTION)){
54 isFound = true;
56 else{
57 for (Object variable1 : variables) {
58 Variable variable = (Variable)variable1;
59 if (variable.getName().equals(name)) {
60 isFound = true;
61 break;
66 if (!isFound){
67 variables.add(new Variable(name, "", "", true));
70 lexer.advance();
74 public static Expression parseTemplate(@NonNls String text) {
75 return MacroParser.parse(text);