diff --git a/.editorconfig b/.editorconfig
index 82159d830579e0d0e73920bcbc72f85178739e17..b522a5e5819c22255630455c4621716f93a2ab85 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -6,6 +6,6 @@ indent_size = 2
 charset = utf-8
 insert_final_newline = true
 
-[*.txt]
+[*.{sablecc3,txt}]
 indent_size = 4
 trim_trailing_whitespace = true
diff --git a/src/main/sablecc/sablecc-3x.sablecc3 b/src/main/sablecc/sablecc-3x.sablecc3
index 878eb49c231fc74fbdd0119de463b3095ff5286e..5a2cbbea2802150df356575313a65046a5c85246 100644
--- a/src/main/sablecc/sablecc-3x.sablecc3
+++ b/src/main/sablecc/sablecc-3x.sablecc3
@@ -131,104 +131,104 @@ Productions
 
     grammar =
         P.package? P.helpers? P.states? P.tokens? ign_tokens? P.productions? P.ast?
-	   {-> New grammar([P.package.list_pkg_id], P.helpers, P.states, 
-	                   P.tokens, P.ign_tokens, P.productions, P.ast)
-	   };
+           {-> New grammar([P.package.list_pkg_id], P.helpers, P.states,
+                           P.tokens, P.ign_tokens, P.productions, P.ast)
+           };
 
     package
-	   {-> [list_pkg_id]:pkg_id*} =
+           {-> [list_pkg_id]:pkg_id*} =
         T.package pkg_name
-	   {-> [pkg_name.pkg_id] };
+           {-> [pkg_name.pkg_id] };
 
-    pkg_name 
-	   {-> pkg_id*} =
+    pkg_name
+           {-> pkg_id*} =
         pkg_id [pkg_ids]:pkg_name_tail* semicolon
-	   {-> [pkg_id, pkg_ids.pkg_id] };
+           {-> [pkg_id, pkg_ids.pkg_id] };
 
-    pkg_name_tail 
-	   {-> pkg_id } =
+    pkg_name_tail
+           {-> pkg_id } =
         dot pkg_id
-	   {-> pkg_id };
+           {-> pkg_id };
 
     helpers =
         T.helpers [helper_defs]:helper_def+
-	   {-> New helpers([helper_defs]) };
+           {-> New helpers([helper_defs]) };
 
     helper_def =
         id equal reg_exp semicolon
-	   {-> New helper_def(id, reg_exp) };
+           {-> New helper_def(id, reg_exp) };
 
     states =
         T.states id_list semicolon
-	   {-> New states([id_list.id]) };
+           {-> New states([id_list.id]) };
 
-    id_list 
-	   {-> id*} =
+    id_list
+           {-> id*} =
         id [ids]:id_list_tail*
-	   {-> [id, ids.id]};
+           {-> [id, ids.id]};
 
-    id_list_tail 
-	   {-> id } =
+    id_list_tail
+           {-> id } =
         comma id
-	   {-> id};
+           {-> id};
 
     tokens =
         T.tokens [token_defs]:token_def+
-	   {-> New tokens([token_defs]) };
+           {-> New tokens([token_defs]) };
 
     token_def =
         state_list? id equal reg_exp look_ahead? semicolon
-	   {-> New token_def(state_list, id, reg_exp, look_ahead.slash, look_ahead.reg_exp) };
+           {-> New token_def(state_list, id, reg_exp, look_ahead.slash, look_ahead.reg_exp) };
 
     state_list =
         l_brace id transition? [state_lists]:state_list_tail* r_brace
-	   {-> New state_list(id, transition, [state_lists])};
+           {-> New state_list(id, transition, [state_lists])};
 
     state_list_tail =
         comma id transition?
-	   {-> New state_list_tail(id, transition) };
+           {-> New state_list_tail(id, transition) };
 
     transition =
         arrow id
-	   {-> New transition(id)};
+           {-> New transition(id)};
 
     ign_tokens =
         ignored T.tokens id_list? semicolon
-	   {-> New ign_tokens([id_list.id]) };
+           {-> New ign_tokens([id_list.id]) };
 
-    look_ahead 
-	   {-> slash reg_exp} =
+    look_ahead
+           {-> slash reg_exp} =
         slash reg_exp
-	   {-> slash reg_exp};
+           {-> slash reg_exp};
 
     reg_exp =
         concat [concats]:reg_exp_tail*
-	   {-> New reg_exp([concat, concats.concat])};
+           {-> New reg_exp([concat, concats.concat])};
 
 
-    reg_exp_tail 
-	   {-> concat } =
+    reg_exp_tail
+           {-> concat } =
         bar concat
-	   {-> concat};
+           {-> concat};
 
     concat =
         [un_exps]:un_exp*
-	   {-> New concat([un_exps])};
+           {-> New concat([un_exps])};
 
     un_exp =
         basic un_op?;
 
     basic =
-        {char}    P.char 
-	   {-> New basic.char(P.char)}		|
-        {set}     set 
-	   {-> New basic.set(set)}		|
-        {string}  string 
-	   {-> New basic.string(string)}	|
-        {id}      id 
-	   {-> New basic.id(id)}		|
+        {char}    P.char
+           {-> New basic.char(P.char)} |
+        {set}     set
+           {-> New basic.set(set)} |
+        {string}  string
+           {-> New basic.string(string)} |
+        {id}      id
+           {-> New basic.id(id)} |
         {reg_exp} l_par reg_exp r_par
-	   {-> New basic.reg_exp(reg_exp)}	;
+           {-> New basic.reg_exp(reg_exp)};
 
     char =
         {char} T.char |
@@ -236,158 +236,158 @@ Productions
         {hex}  hex_char;
 
     set =
-        {operation} l_bkt [left]:basic  bin_op [right]:basic  r_bkt 
-	   {-> New set.operation(left, bin_op, right) } |
+        {operation} l_bkt [left]:basic  bin_op [right]:basic  r_bkt
+           {-> New set.operation(left, bin_op, right) } |
         {interval}  l_bkt [left]:P.char d_dot  [right]:P.char r_bkt
-	   {-> New set.interval(left, right) };
+           {-> New set.interval(left, right) };
 
     un_op =
-        {star}   star 
-	   {-> New un_op.star(star)}   |
+        {star}   star
+           {-> New un_op.star(star)} |
         {q_mark} q_mark
-	   {-> New un_op.q_mark(q_mark)} |
+           {-> New un_op.q_mark(q_mark)} |
         {plus}   plus
-	   {-> New un_op.plus(plus)}   ;
+           {-> New un_op.plus(plus)};
 
     bin_op =
-        {plus}  plus 
-	   {-> New bin_op.plus()}  |
+        {plus}  plus
+           {-> New bin_op.plus()}|
         {minus} minus
-	   {-> New bin_op.minus()} ;
+           {-> New bin_op.minus()};
 
     productions =
         T.productions [prods]:prod+
-	   {-> New productions([prods]) };
+           {-> New productions([prods]) };
 
     prod =
         id prod_transform? equal alts semicolon
-	   {-> New prod(id, prod_transform.arrow, [prod_transform.elem], [alts.list_alt])};
+           {-> New prod(id, prod_transform.arrow, [prod_transform.elem], [alts.list_alt])};
 
-    prod_transform 
-	   {-> arrow elem*} =
+    prod_transform
+           {-> arrow elem*} =
         l_brace arrow [elems]:elem* r_brace
-	   {-> arrow [elems]};
+           {-> arrow [elems]};
 
-    alts 
-	   {-> [list_alt]:alt*} =
+    alts
+           {-> [list_alt]:alt*} =
         alt [alts]:alts_tail*
-	   {-> [alt, alts.alt]};
+           {-> [alt, alts.alt]};
 
-    alts_tail 
-	   {-> alt} =
+    alts_tail
+           {-> alt} =
         bar alt
-	   {-> alt};
+           {-> alt};
 
     alt =
-        alt_name? [elems]:elem* alt_transform? 
-	   {-> New alt(alt_name.id, [elems], alt_transform)};
+        alt_name? [elems]:elem* alt_transform?
+           {-> New alt(alt_name.id, [elems], alt_transform)};
 
     alt_transform =
         l_brace arrow [terms]: term* r_brace
-	   {-> New alt_transform(l_brace, [terms], r_brace)};
+           {-> New alt_transform(l_brace, [terms], r_brace)};
 
     term =
         {new} new prod_name l_par params? r_par
-	   {-> New term.new(prod_name, l_par, [params.list_term]) } 		|
+           {-> New term.new(prod_name, l_par, [params.list_term]) } |
 
         {list} l_bkt list_of_list_term? r_bkt
-	   {-> New term.list(l_bkt, [list_of_list_term.list_terms])} 	|
+           {-> New term.list(l_bkt, [list_of_list_term.list_terms])} |
 
         {simple} specifier? id simple_term_tail?
-	   {-> New term.simple(specifier, id, simple_term_tail.id)} 	|
+           {-> New term.simple(specifier, id, simple_term_tail.id)} |
 
         {null} null
-	   {-> New term.null()}						;
+           {-> New term.null()};
 
-    list_of_list_term 
-	   {-> [list_terms]:list_term* } =
-		list_term [list_terms]:list_term_tail*
-	   {-> [list_term, list_terms.list_term] }    ;
+    list_of_list_term
+           {-> [list_terms]:list_term* } =
+        list_term [list_terms]:list_term_tail*
+           {-> [list_term, list_terms.list_term] };
 
     list_term =
         {new} new prod_name l_par params? r_par
-	   {-> New list_term.new(prod_name, l_par, [params.list_term])}		|
-       	{simple} specifier? id simple_term_tail? 
-	   {-> New list_term.simple(specifier, id, simple_term_tail.id)};
+           {-> New list_term.new(prod_name, l_par, [params.list_term])} |
+               {simple} specifier? id simple_term_tail?
+           {-> New list_term.simple(specifier, id, simple_term_tail.id)};
 
-    list_term_tail 
-	   {-> list_term} =
-	comma list_term
-	   {-> list_term} ;
+    list_term_tail
+           {-> list_term} =
+        comma list_term
+           {-> list_term};
 
-    simple_term_tail 
-	   {-> id} =
+    simple_term_tail
+           {-> id} =
         dot id
-	   {-> id};
+           {-> id};
 
     prod_name =
         id prod_name_tail?
-	   {-> New prod_name(id, prod_name_tail.id)};
+           {-> New prod_name(id, prod_name_tail.id)};
 
-    prod_name_tail 
-	   {-> id} =
+    prod_name_tail
+           {-> id} =
         dot id
-	   {-> id};
+           {-> id};
 
-    params 
-	   {-> [list_term]:term*} =
+    params
+           {-> [list_term]:term*} =
        term [params]:params_tail*
-	   {-> [term, params.term]};
+           {-> [term, params.term]};
 
-    params_tail 
-	   {-> term} =
+    params_tail
+           {-> term} =
        comma term
-	   {-> term};
+           {-> term};
 
-    alt_name 
-	   {-> id} =
+    alt_name
+           {-> id} =
         l_brace id r_brace
-	   {-> id};
+           {-> id};
 
     elem =
         elem_name? specifier? id un_op?
-	   {-> New elem(elem_name.id, specifier, id, un_op) };
+           {-> New elem(elem_name.id, specifier, id, un_op) };
 
-    elem_name 
-	   {-> id} =
+    elem_name
+           {-> id} =
         l_bkt id r_bkt colon
-	   {-> id};
+           {-> id};
 
     specifier =
-        {token}      token_specifier dot 
-	   {-> New specifier.token()} 			|
+        {token}      token_specifier dot
+           {-> New specifier.token()} |
         {production} production_specifier dot
-	   {-> New specifier.production()}		;
+           {-> New specifier.production()};
 
     ast =
         abstract syntax tree [prods]:ast_prod+
-	   {-> New ast([prods]) };
+           {-> New ast([prods]) };
 
     ast_prod =
         id equal [alts]:ast_alts semicolon
-	   {-> New ast_prod(id, [alts.list_ast_alt])};
+           {-> New ast_prod(id, [alts.list_ast_alt])};
 
-    ast_alts 
-	   {-> [list_ast_alt]:ast_alt*} =
+    ast_alts
+           {-> [list_ast_alt]:ast_alt*} =
         ast_alt [ast_alts]:ast_alts_tail*
-	   {-> [ast_alt, ast_alts.ast_alt]};
+           {-> [ast_alt, ast_alts.ast_alt]};
 
-    ast_alts_tail 
-	   {-> ast_alt} =
+    ast_alts_tail
+           {-> ast_alt} =
         bar ast_alt
-	   {-> ast_alt};
+           {-> ast_alt};
 
     ast_alt =
         alt_name? [elems]:elem*
-	   {-> New ast_alt(alt_name.id, [elems])};
+           {-> New ast_alt(alt_name.id, [elems])};
 
 
 /*****************************************************************************************/
-/*											 */
-/*											 */
-/*											 */
-/*											 */
-/*											 */
+/*                                                                                       */
+/*                                                                                       */
+/*                                                                                       */
+/*                                                                                       */
+/*                                                                                       */
 /*****************************************************************************************/
 Abstract Syntax Tree
 
@@ -401,7 +401,7 @@ Abstract Syntax Tree
         id reg_exp;
 
     states =
-	[list_id]:id*;
+        [list_id]:id*;
 
     tokens =
         [token_defs]:token_def*;
@@ -424,8 +424,8 @@ Abstract Syntax Tree
     reg_exp =
         [concats]:concat*;
 
-    concat = 
-	[un_exps]: un_exp*;
+    concat =
+        [un_exps]: un_exp*;
 
     un_exp =
         basic un_op?;
@@ -447,9 +447,9 @@ Abstract Syntax Tree
         {interval}  [left]:P.char [right]:P.char ;
 
     un_op =
-        {star}   star 	|
+        {star}   star |
         {q_mark} q_mark |
-        {plus}   plus	;
+        {plus}   plus;
 
     bin_op =
         {plus} |
@@ -465,27 +465,27 @@ Abstract Syntax Tree
         [alt_name]:id? [elems]:elem* alt_transform?;
 
     alt_transform =
-	l_brace [terms]:term* r_brace;
+        l_brace [terms]:term* r_brace;
 
     term =
         {new} prod_name l_par [params]:term* |
         {list} l_bkt [list_terms]:list_term* |
         {simple} specifier? id [simple_term_tail]:id? |
-        {null} ;
+        {null};
 
     list_term =
         {new} prod_name l_par [params]:term* |
-        {simple} specifier? id [simple_term_tail]:id? ;
+        {simple} specifier? id [simple_term_tail]:id?;
 
     prod_name =
-        id [prod_name_tail]:id? ;
+        id [prod_name_tail]:id?;
 
     elem =
         [elem_name]:id? specifier? id un_op?;
 
     specifier =
-        {token} 	|
-        {production} 	;
+        {token} |
+        {production};
 
     ast =
         [prods]:ast_prod*;