11package io .polypen .parse ;
22
3- import io .polypen .parse .Parser .Expr ;
4- import io .polypen .parse .Parser .ListExpr ;
5- import io .polypen .parse .Parser .MinusExpr ;
6- import io .polypen .parse .Parser .MultExpr ;
7- import io .polypen .parse .Parser .MultListExpr ;
8- import io .polypen .parse .Parser .NumberExpr ;
9- import io .polypen .parse .Parser .PlusExpr ;
10- import io .polypen .parse .Parser .PlusListExpr ;
3+ import io .polypen .parse .Parser .Token ;
4+ import io .polypen .parse .Parser .ListToken ;
5+ import io .polypen .parse .Parser .MinusToken ;
6+ import io .polypen .parse .Parser .MultToken ;
7+ import io .polypen .parse .Parser .MultListToken ;
8+ import io .polypen .parse .Parser .NumberToken ;
9+ import io .polypen .parse .Parser .PlusToken ;
10+ import io .polypen .parse .Parser .PlusListToken ;
1111
1212import java .util .List ;
1313
@@ -17,34 +17,34 @@ public class Macro {
1717 public static final int B_MINUSBOUND = 16 ;
1818 public static final int B_END = 1 ;
1919
20- public static Expr applyStarMacro (List <Expr > exprs ) {
21- if (exprs .size () == 1 ) {
22- return expandRecursively (exprs .getFirst ());
20+ public static Token applyStarMacro (List <Token > tokens ) {
21+ if (tokens .size () == 1 ) {
22+ return expandRecursively (tokens .getFirst ());
2323 }
24- PlusListExpr exprsCopy = PlusListExpr .create (exprs .size ());
25- MultListExpr region = MultListExpr .create (exprs .size ());
26- int [] bound = new int [exprs .size ()];
27- for (int i = 0 ; i < exprs .size () - 1 ; i ++) {
28- Expr left = exprs .get (i );
29- Expr right = exprs .get (i + 1 );
24+ PlusListToken exprsCopy = PlusListToken .create (tokens .size ());
25+ MultListToken region = MultListToken .create (tokens .size ());
26+ int [] bound = new int [tokens .size ()];
27+ for (int i = 0 ; i < tokens .size () - 1 ; i ++) {
28+ Token left = tokens .get (i );
29+ Token right = tokens .get (i + 1 );
3030 if (isStrong (left , right )) {
3131 bound [i ] |= B_STRONG ;
3232 bound [i + 1 ] |= B_STRONG ;
33- if (left instanceof MinusExpr ) {
33+ if (left instanceof MinusToken ) {
3434 bound [i + 1 ] |= B_MINUSBOUND ;
3535 }
3636 } else if ((bound [i ] & B_STRONG ) != 0 ) {
3737 bound [i ] |= B_END ;
3838 }
3939 }
40- for (int i = 0 ; i < exprs .size (); i ++) {
41- Expr expr = exprs .get (i );
40+ for (int i = 0 ; i < tokens .size (); i ++) {
41+ Token token = tokens .get (i );
4242 int b = bound [i ];
4343 if ((b & B_STRONG ) != 0 ) {
4444 if ((b & B_MINUSBOUND ) != 0 ) {
45- region .add (MultListExpr .of (NumberExpr .of (-1 ), expandRecursively (expr )));
45+ region .add (MultListToken .of (NumberToken .of (-1 ), expandRecursively (token )));
4646 } else {
47- region .add (expandRecursively (expr ));
47+ region .add (expandRecursively (token ));
4848 }
4949 if ((b & B_END ) != 0 ) {
5050 exprsCopy .add (unwrap (region .copy ()));
@@ -55,7 +55,7 @@ public static Expr applyStarMacro(List<Expr> exprs) {
5555 exprsCopy .add (unwrap (region .copy ()));
5656 region .clear ();
5757 }
58- exprsCopy .add (expandRecursively (expr ));
58+ exprsCopy .add (expandRecursively (token ));
5959 }
6060 }
6161 if (exprsCopy .isEmpty ()) {
@@ -67,31 +67,31 @@ public static Expr applyStarMacro(List<Expr> exprs) {
6767 return exprsCopy ;
6868 }
6969
70- private static Expr unwrap (MultListExpr expr ) {
70+ private static Token unwrap (MultListToken expr ) {
7171 return expr .size () == 1 ? expr .getFirst () : expr ;
7272 }
7373
74- private static Expr expandRecursively (Expr expr ) {
75- if (expr == null ) {
74+ private static Token expandRecursively (Token token ) {
75+ if (token == null ) {
7676 return null ;
7777 }
78- return switch (expr ) {
79- case ListExpr x -> applyStarMacro (x .value ());
80- default -> expr ;
78+ return switch (token ) {
79+ case ListToken x -> applyStarMacro (x .value ());
80+ default -> token ;
8181 };
8282 }
8383
84- public static boolean isStrong (Expr left , Expr right ) {
85- if (left instanceof MultExpr || right instanceof MultExpr ) {
84+ public static boolean isStrong (Token left , Token right ) {
85+ if (left instanceof MultToken || right instanceof MultToken ) {
8686 return true ;
8787 }
88- if (left instanceof PlusExpr || right instanceof PlusExpr ) {
88+ if (left instanceof PlusToken || right instanceof PlusToken ) {
8989 return false ;
9090 }
91- if (left instanceof MinusExpr ) {
91+ if (left instanceof MinusToken ) {
9292 return true ;
9393 }
94- if (right instanceof MinusExpr ) {
94+ if (right instanceof MinusToken ) {
9595 return false ;
9696 }
9797 return true ;
0 commit comments