Skip to content
Snippets Groups Projects
Gmsh.tab.cpp 313 KiB
Newer Older
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 241:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2923 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d);      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 242:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2924 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d);      ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 243:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2926 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { 
      if(!(yyvsp[(3) - (3)].d))
	yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	(yyval.d) = (yyvsp[(1) - (3)].d) / (yyvsp[(3) - (3)].d);     
    ;}
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2932 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d);  ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2933 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d));  ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2934 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d);      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2935 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d);      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2936 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d);     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2937 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d);     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2938 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d);     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2939 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d);     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2940 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d);     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2941 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d);     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2942 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2943 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = exp((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2944 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = log((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2945 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = log10((yyvsp[(3) - (4)].d));    ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2946 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = sqrt((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2947 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = sin((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2948 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = asin((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2949 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = cos((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2950 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = acos((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2951 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = tan((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2952 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = atan((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2953 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2954 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = sinh((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2955 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = cosh((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2956 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = tanh((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2957 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = fabs((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2958 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = floor((yyvsp[(3) - (4)].d));    ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2959 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = ceil((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2960 "Gmsh.y"
Christophe Geuzaine's avatar
Christophe Geuzaine committed
    { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2961 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2962 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2963 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2965 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = exp((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2966 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = log((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2967 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = log10((yyvsp[(3) - (4)].d));    ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2968 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = sqrt((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2969 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = sin((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2970 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = asin((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2971 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = cos((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2972 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = acos((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2973 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = tan((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2974 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = atan((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2975 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2976 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = sinh((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2977 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = cosh((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2978 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = tanh((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2979 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = fabs((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2980 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = floor((yyvsp[(3) - (4)].d));    ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2981 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = ceil((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2982 "Gmsh.y"
Christophe Geuzaine's avatar
Christophe Geuzaine committed
    { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2983 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2984 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2985 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;}
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2994 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = (yyvsp[(1) - (1)].d); ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2995 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = 3.141592653589793; ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2996 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = Msg::GetCommRank(); ;}
Christophe Geuzaine's avatar
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2997 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = Msg::GetCommSize(); ;}
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2998 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = GetGmshMajorVersion(); ;}
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 2999 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = GetGmshMinorVersion(); ;}
Christophe Geuzaine's avatar
Christophe Geuzaine committed
    break;

Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3000 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
    { (yyval.d) = GetGmshPatchVersion(); ;}
    break;

  case 304:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3005 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){
	yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	(yyval.d) = 0.;
	(yyval.d) = gmsh_yysymbols[(yyvsp[(1) - (1)].c)][0];
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free((yyvsp[(1) - (1)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 305:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3018 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      char tmpstring[1024];
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      sprintf(tmpstring, "%s_%d", (yyvsp[(1) - (5)].c), (int)(yyvsp[(4) - (5)].d)) ;
      if(!gmsh_yysymbols.count(tmpstring)){
	yymsg(0, "Unknown variable '%s'", tmpstring);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	(yyval.d) = 0.;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      }
      else
	(yyval.d) = gmsh_yysymbols[tmpstring][0];
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free((yyvsp[(1) - (5)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 306:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3030 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      int index = (int)(yyvsp[(3) - (4)].d);
      if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){
	yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (4)].c));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	(yyval.d) = 0.;
      else if(gmsh_yysymbols[(yyvsp[(1) - (4)].c)].size() < index + 1){
	yymsg(0, "Uninitialized variable '%s[%d]'", (yyvsp[(1) - (4)].c), index);
	(yyval.d) = 0.;
      else
	(yyval.d) = gmsh_yysymbols[(yyvsp[(1) - (4)].c)][index];
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free((yyvsp[(1) - (4)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 307:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3045 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      if(!gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){
	yymsg(0, "Unknown variable '%s'", (yyvsp[(2) - (4)].c));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	(yyval.d) = 0.;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      }
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      else
	(yyval.d) = gmsh_yysymbols[(yyvsp[(2) - (4)].c)].size();
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free((yyvsp[(2) - (4)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 308:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3055 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){
	yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	(yyval.d) = 0.;
	(yyval.d) = (gmsh_yysymbols[(yyvsp[(1) - (2)].c)][0] += (yyvsp[(2) - (2)].i));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free((yyvsp[(1) - (2)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 309:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3065 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      int index = (int)(yyvsp[(3) - (5)].d);
      if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){
	yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (5)].c));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	(yyval.d) = 0.;
      else if(gmsh_yysymbols[(yyvsp[(1) - (5)].c)].size() < index + 1){
	yymsg(0, "Uninitialized variable '%s[%d]'", (yyvsp[(1) - (5)].c), index);
	(yyval.d) = 0.;
      else
	(yyval.d) = (gmsh_yysymbols[(yyvsp[(1) - (5)].c)][index] += (yyvsp[(5) - (5)].i));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free((yyvsp[(1) - (5)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 310:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3083 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      NumberOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), (yyval.d));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free((yyvsp[(1) - (3)].c)); Free((yyvsp[(3) - (3)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 311:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3088 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), (yyval.d));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(6) - (6)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 312:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3093 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      double d = 0.;
      if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){
	d += (yyvsp[(4) - (4)].i);
	NumberOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d);
	(yyval.d) = d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free((yyvsp[(1) - (4)].c)); Free((yyvsp[(3) - (4)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 313:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3103 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      double d = 0.;
      if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){
	d += (yyvsp[(7) - (7)].i);
	NumberOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d);
	(yyval.d) = d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      }
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free((yyvsp[(1) - (7)].c)); Free((yyvsp[(6) - (7)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 314:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3113 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { 
      (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free((yyvsp[(3) - (6)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 315:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3121 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 316:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3125 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i];
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 317:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3129 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { 
      for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i];
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 318:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3133 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { 
      for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i];
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 319:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3137 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i];
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 320:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3144 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { 
      (yyval.v)[0] = (yyvsp[(2) - (11)].d);  (yyval.v)[1] = (yyvsp[(4) - (11)].d);  (yyval.v)[2] = (yyvsp[(6) - (11)].d);  (yyval.v)[3] = (yyvsp[(8) - (11)].d); (yyval.v)[4] = (yyvsp[(10) - (11)].d);
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 321:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3148 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { 
      (yyval.v)[0] = (yyvsp[(2) - (9)].d);  (yyval.v)[1] = (yyvsp[(4) - (9)].d);  (yyval.v)[2] = (yyvsp[(6) - (9)].d);  (yyval.v)[3] = (yyvsp[(8) - (9)].d); (yyval.v)[4] = 1.0;
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 322:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3152 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.v)[0] = (yyvsp[(2) - (7)].d);  (yyval.v)[1] = (yyvsp[(4) - (7)].d);  (yyval.v)[2] = (yyvsp[(6) - (7)].d);  (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0;
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 323:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3156 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.v)[0] = (yyvsp[(2) - (7)].d);  (yyval.v)[1] = (yyvsp[(4) - (7)].d);  (yyval.v)[2] = (yyvsp[(6) - (7)].d);  (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0;
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 324:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3163 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(List_T*));
      List_Add((yyval.l), &((yyvsp[(1) - (1)].l)));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 325:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3168 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      List_Add((yyval.l), &((yyvsp[(3) - (3)].l)));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 326:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3175 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(double));
      List_Add((yyval.l), &((yyvsp[(1) - (1)].d)));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 327:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3180 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = (yyvsp[(1) - (1)].l);
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 328:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3184 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      // creates an empty list
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      (yyval.l) = List_Create(2, 1, sizeof(double));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 329:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3189 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = (yyvsp[(2) - (3)].l);
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 330:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3193 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = (yyvsp[(3) - (4)].l);
      for(int i = 0; i < List_Nbr((yyval.l)); i++){
	double *pd = (double*)List_Pointer((yyval.l), i);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	(*pd) = - (*pd);
      }
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 331:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3201 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = (yyvsp[(4) - (5)].l);
      for(int i = 0; i < List_Nbr((yyval.l)); i++){
	double *pd = (double*)List_Pointer((yyval.l), i);
	(*pd) *= (yyvsp[(1) - (5)].d);
      }
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 332:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3212 "Gmsh.y"
Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 333:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3216 "Gmsh.y"
    {
      if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all"))
        (yyval.l) = 0;
      else{
        yyerror("Unknown special string for list replacement");
        (yyval.l) = List_Create(2, 1, sizeof(double));
      }
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 334:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3228 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = (yyvsp[(2) - (2)].l);
      for(int i = 0; i < List_Nbr((yyval.l)); i++){
	double *pd = (double*)List_Pointer((yyval.l), i);
	(*pd) = - (*pd);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 335:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3236 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = (yyvsp[(3) - (3)].l);
      for(int i = 0; i < List_Nbr((yyval.l)); i++){
	double *pd = (double*)List_Pointer((yyval.l), i);
	(*pd) *= (yyvsp[(1) - (3)].d);
      }
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 336:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3244 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { 
      (yyval.l) = List_Create(2, 1, sizeof(double)); 
Christophe Geuzaine's avatar
Christophe Geuzaine committed
      for(double d = (yyvsp[(1) - (3)].d); ((yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d)) ? (d <= (yyvsp[(3) - (3)].d)) : (d >= (yyvsp[(3) - (3)].d)); 
          ((yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d)) ? (d += 1.) : (d -= 1.)) 
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	List_Add((yyval.l), &d);
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 337:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3251 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(double)); 
      if(!(yyvsp[(5) - (5)].d) || ((yyvsp[(1) - (5)].d) < (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) < 0) || ((yyvsp[(1) - (5)].d) > (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) > 0)){
        yymsg(0, "Wrong increment in '%g:%g:%g'", (yyvsp[(1) - (5)].d), (yyvsp[(3) - (5)].d), (yyvsp[(5) - (5)].d));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	List_Add((yyval.l), &((yyvsp[(1) - (5)].d)));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	for(double d = (yyvsp[(1) - (5)].d); ((yyvsp[(5) - (5)].d) > 0) ? (d <= (yyvsp[(3) - (5)].d)) : (d >= (yyvsp[(3) - (5)].d)); d += (yyvsp[(5) - (5)].d))
	  List_Add((yyval.l), &d);
   ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 338:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3262 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      // Returns the coordinates of a point and fills a list with it.
      // This allows to ensure e.g. that relative point positions are
      // always conserved
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Vertex *v = FindPoint((int)(yyvsp[(3) - (4)].d));
      (yyval.l) = List_Create(3, 1, sizeof(double));      
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      if(!v) {
	yymsg(0, "Unknown point '%d'", (int)(yyvsp[(3) - (4)].d));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	double d = 0.0;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	List_Add((yyval.l), &d);
	List_Add((yyval.l), &d);
	List_Add((yyval.l), &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      }
      else{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	List_Add((yyval.l), &v->Pos.X);
	List_Add((yyval.l), &v->Pos.Y);
	List_Add((yyval.l), &v->Pos.Z);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      }
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 339:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3282 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double));
      for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){
	Shape *s = (Shape*) List_Pointer((yyvsp[(1) - (1)].l), i);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	double d = s->Num;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	List_Add((yyval.l), &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      }
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      List_Delete((yyvsp[(1) - (1)].l));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 340:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3292 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double));
      for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){
	Shape *s = (Shape*) List_Pointer((yyvsp[(1) - (1)].l), i);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	List_Add((yyval.l), &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      List_Delete((yyvsp[(1) - (1)].l));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 341:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3302 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(double));
      if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c)))
	yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (3)].c));
      else
	for(unsigned int i = 0; i < gmsh_yysymbols[(yyvsp[(1) - (3)].c)].size(); i++)
	  List_Add((yyval.l), &gmsh_yysymbols[(yyvsp[(1) - (3)].c)][i]);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free((yyvsp[(1) - (3)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 342:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3312 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(double));
      if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c)))
	yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (6)].c));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){
	  int index = (int)(*(double*)List_Pointer_Fast((yyvsp[(4) - (6)].l), i));
	  if(gmsh_yysymbols[(yyvsp[(1) - (6)].c)].size() < index + 1)
	    yymsg(0, "Uninitialized variable '%s[%d]'", (yyvsp[(1) - (6)].c), index);
	    List_Add((yyval.l), &gmsh_yysymbols[(yyvsp[(1) - (6)].c)][index]);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free((yyvsp[(1) - (6)].c));
      List_Delete((yyvsp[(4) - (6)].l));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 343:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3332 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(double));
      List_Add((yyval.l), &((yyvsp[(1) - (1)].d)));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 344:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3337 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = (yyvsp[(1) - (1)].l);
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 345:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3341 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      List_Add((yyval.l), &((yyvsp[(3) - (3)].d)));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 346:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3345 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	double d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	List_Read((yyvsp[(3) - (3)].l), i, &d);
	List_Add((yyval.l), &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      }
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      List_Delete((yyvsp[(3) - (3)].l));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 347:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3357 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (9)].d), (int)(yyvsp[(4) - (9)].d), (int)(yyvsp[(6) - (9)].d), (int)(yyvsp[(8) - (9)].d));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 348:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3361 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (7)].d), (int)(yyvsp[(4) - (7)].d), (int)(yyvsp[(6) - (7)].d), 255);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 349:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3373 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.u) = GetColorForString(ColorString, -1, (yyvsp[(1) - (1)].c), &flag);
      if(flag) yymsg(0, "Unknown color '%s'", (yyvsp[(1) - (1)].c));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free((yyvsp[(1) - (1)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 350:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3380 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      unsigned int val = 0;
      ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val);
      (yyval.u) = val;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free((yyvsp[(1) - (5)].c)); Free((yyvsp[(5) - (5)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 351:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3390 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = (yyvsp[(2) - (3)].l);
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 352:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3394 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(256, 10, sizeof(unsigned int));
      GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (6)].d));
	yymsg(0, "View[%d] does not exist", (int)(yyvsp[(3) - (6)].d));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	for(int i = 0; i < ct->size; i++) 
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  List_Add((yyval.l), &ct->table[i]);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free((yyvsp[(1) - (6)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 353:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3409 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(256, 10, sizeof(unsigned int));
      List_Add((yyval.l), &((yyvsp[(1) - (1)].u)));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 354:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3414 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      List_Add((yyval.l), &((yyvsp[(3) - (3)].u)));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 355:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3421 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.c) = (yyvsp[(1) - (1)].c);
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 356:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3425 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){
	yymsg(0, "Unknown string variable '%s'", (yyvsp[(1) - (1)].c));
	(yyval.c) = (yyvsp[(1) - (1)].c);
      }
      else{
	std::string val = gmsh_yystringsymbols[(yyvsp[(1) - (1)].c)];
	(yyval.c) = (char *)Malloc((val.size() + 1) * sizeof(char));
	strcpy((yyval.c), val.c_str());
	Free((yyvsp[(1) - (1)].c));
      }
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 357:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3438 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      std::string out;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), out);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      (yyval.c) = (char*)Malloc((out.size() + 1) * sizeof(char));
      strcpy((yyval.c), out.c_str());
      Free((yyvsp[(1) - (3)].c)); Free((yyvsp[(3) - (3)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 358:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3446 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      std::string out;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), out);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      (yyval.c) = (char*)Malloc((out.size() + 1) * sizeof(char));
      strcpy((yyval.c), out.c_str());
      Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(6) - (6)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 359:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3457 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.c) = (yyvsp[(1) - (1)].c);
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 360:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3461 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.c) = (char *)Malloc(32 * sizeof(char));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      time_t now;
      time(&now);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      strcpy((yyval.c), ctime(&now));
      (yyval.c)[strlen((yyval.c)) - 1] = '\0';
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 361:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3469 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (6)].c)) + strlen((yyvsp[(5) - (6)].c)) + 1) * sizeof(char));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      strcpy((yyval.c), (yyvsp[(3) - (6)].c));
      strcat((yyval.c), (yyvsp[(5) - (6)].c));
      Free((yyvsp[(3) - (6)].c));
      Free((yyvsp[(5) - (6)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 362:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3477 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      int i;
      for(i = strlen((yyvsp[(3) - (4)].c)) - 1; i >= 0; i--){
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	if((yyvsp[(3) - (4)].c)[i] == '.'){
	  strncpy((yyval.c), (yyvsp[(3) - (4)].c), i);
	  (yyval.c)[i]='\0';
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      if(i <= 0) strcpy((yyval.c), (yyvsp[(3) - (4)].c));
      Free((yyvsp[(3) - (4)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 363:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3491 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      int i;
      for(i = strlen((yyvsp[(3) - (4)].c)) - 1; i >= 0; i--){
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	if((yyvsp[(3) - (4)].c)[i] == '/' || (yyvsp[(3) - (4)].c)[i] == '\\')
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  break;
      }
      if(i <= 0)
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	strcpy((yyval.c), (yyvsp[(3) - (4)].c));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      else
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	strcpy((yyval.c), &(yyvsp[(3) - (4)].c)[i+1]);
      Free((yyvsp[(3) - (4)].c));
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 364:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3505 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.c) = (yyvsp[(3) - (4)].c);
    ;}
    break;

Jean-François Remacle's avatar
 
Jean-François Remacle committed
  case 365:
Christophe Geuzaine's avatar
Christophe Geuzaine committed
#line 3509 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      char tmpstring[1024];
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      if(i < 0){
	yymsg(0, "Too few arguments in Sprintf");
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	(yyval.c) = (yyvsp[(3) - (6)].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      else if(i > 0){
	yymsg(0, "%d extra argument%s in Sprintf", i, (i > 1) ? "s" : "");
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	(yyval.c) = (yyvsp[(3) - (6)].c);
	(yyval.c) = (char*)Malloc((strlen(tmpstring) + 1) * sizeof(char));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	strcpy((yyval.c), tmpstring);
	Free((yyvsp[(3) - (6)].c));
      }
      List_Delete((yyvsp[(5) - (6)].l));
    ;}
    break;


/* Line 1267 of yacc.c.  */
Jean-François Remacle's avatar
 
Jean-François Remacle committed
#line 7984 "Gmsh.tab.cpp"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      default: break;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    }
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);

  YYPOPSTACK (yylen);
  yylen = 0;
  YY_STACK_PRINT (yyss, yyssp);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed

Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
  /* Now `shift' the result of the reduction.  Determine what state
     that goes to, based on the state we popped back to and the rule
     number reduced by.  */