public static boolean env_variable(PsiBuilder b, int l) {
    if (!recursion_guard_(b, l, "env_variable")) return false;
    if (!nextTokenIs(b, DOLLAR_SIGN)) return false;
    boolean r;
    Marker m = enter_section_(b);
    r = consumeTokens(b, 0, DOLLAR_SIGN, LBRACE);
    r = r && variable_name(b, l + 1);
    r = r && consumeToken(b, RBRACE);
    exit_section_(b, m, ENV_VARIABLE, r);
    return r;
  }
public static boolean env_variable(PsiBuilder b, int l)