Browse Source

Replace tabs with spaces again.

Giovanni Mascellani 5 years ago
parent
commit
dac5a4be69
4 changed files with 211 additions and 211 deletions
  1. 49 49
      asmg/c_compile.g
  2. 49 49
      asmg/mescc_hex2.g
  3. 13 13
      asmg/mescc_m1.g
  4. 100 100
      asmg/mescc_m2.g

+ 49 - 49
asmg/c_compile.g

@@ -1085,7 +1085,7 @@ fun cctx_parse_enum 1 {
       @tok ctx cctx_get_token_or_fail = ;
       if tok "=" strcmp 0 == {
         $ast
-	@ast ctx "}" "," cctx_parse_ast2 = ;
+        @ast ctx "}" "," cctx_parse_ast2 = ;
         @val ctx ast ast_eval_compile = ;
         ast ast_destroy ;
         @tok ctx cctx_get_token_or_fail = ;
@@ -1834,8 +1834,8 @@ fun cctx_gen_jump 3 {
     } else {
       if type JUMP_TYPE_JZ == {
         # jz rel
-	ctx 0x0f cctx_emit ;
-	ctx 0x84 cctx_emit ;
+        ctx 0x0f cctx_emit ;
+        ctx 0x84 cctx_emit ;
       } else {
         0 "cctx_gen_dump: error 1" assert_msg ;
       }
@@ -2129,15 +2129,15 @@ fun ast_eval_type 3 {
         }
       } else {
         left_ptr ! right_ptr && ! "ast_eval_type: cannot take different of a non-pointer and a pointer" assert_msg ;
-	if left_ptr {
-	  if right_ptr {
+        if left_ptr {
+          if right_ptr {
             left_size right_size == "ast_eval_type: cannot take difference of pointers to types of different size" assert_msg ;
-	    @type_idx TYPE_INT = ;
-	  } else {
-	    @type_idx left_idx = ;
-	  }
-	  @processed 1 = ;
-	}
+            @type_idx TYPE_INT = ;
+          } else {
+            @type_idx left_idx = ;
+          }
+          @processed 1 = ;
+        }
       }
     }
 
@@ -2296,22 +2296,22 @@ fun ast_push_addr 3 {
     } else {
       if name **c '\"' == {
         $label
-	$str_label
+        $str_label
         @label lctx ctx lctx_gen_label = ;
-	@str_label lctx ctx lctx_gen_label = ;
+        @str_label lctx ctx lctx_gen_label = ;
         ctx lctx label JUMP_TYPE_JMP 0 cctx_gen_label_jump ;
-	lctx ctx str_label lctx_fix_label ;
+        lctx ctx str_label lctx_fix_label ;
         $from
-	@from name 1 + = ;
-	while from **c '\"' != {
-	  @from 0 ctx escape_char ;
-	}
-	from 1 + **c 0 == "ast_push_addr: illegal string literal" assert_msg ;
-	ctx 0 cctx_emit ;
+        @from name 1 + = ;
+        while from **c '\"' != {
+          @from 0 ctx escape_char ;
+        }
+        from 1 + **c 0 == "ast_push_addr: illegal string literal" assert_msg ;
+        ctx 0 cctx_emit ;
         lctx ctx label lctx_fix_label ;
-	# push str_label
-	ctx 0x68 cctx_emit ;
-	ctx ctx lctx label cctx_get_label_addr cctx_emit32 ;
+        # push str_label
+        ctx 0x68 cctx_emit ;
+        ctx ctx lctx label cctx_get_label_addr cctx_emit32 ;
       } else {
         0 "ast_push_addr: cannot take the address of an immediate" assert_msg ;
       }
@@ -3015,22 +3015,22 @@ fun ast_push_value_ptr 3 {
     if left_ptr {
       if right_ptr {
         left_size right_size == "ast_eval_type: cannot take difference of pointers to types of different size" assert_msg ;
-	# push size; ast_push_value; ast_push_value
-	ctx 0x68 cctx_emit ;
-	ctx left_size cctx_emit32 ;
-	ast AST_LEFT take ctx lctx ast_push_value ;
-	ast AST_RIGHT take ctx lctx ast_push_value ;
-
-	# pop edx; pop eax; sub eax, edx; pop ecx; cdq; idiv ecx; push eax
-	ctx 0x5a cctx_emit ;
-	ctx 0x58 cctx_emit ;
-	ctx 0x29 cctx_emit ;
-	ctx 0xd0 cctx_emit ;
-	ctx 0x59 cctx_emit ;
-	ctx 0x99 cctx_emit ;
-	ctx 0xf7 cctx_emit ;
-	ctx 0xf9 cctx_emit ;
-	ctx 0x50 cctx_emit ;
+        # push size; ast_push_value; ast_push_value
+        ctx 0x68 cctx_emit ;
+        ctx left_size cctx_emit32 ;
+        ast AST_LEFT take ctx lctx ast_push_value ;
+        ast AST_RIGHT take ctx lctx ast_push_value ;
+
+        # pop edx; pop eax; sub eax, edx; pop ecx; cdq; idiv ecx; push eax
+        ctx 0x5a cctx_emit ;
+        ctx 0x58 cctx_emit ;
+        ctx 0x29 cctx_emit ;
+        ctx 0xd0 cctx_emit ;
+        ctx 0x59 cctx_emit ;
+        ctx 0x99 cctx_emit ;
+        ctx 0xf7 cctx_emit ;
+        ctx 0xf9 cctx_emit ;
+        ctx 0x50 cctx_emit ;
       } else {
         # ast_push_value; ast_push_value; push size
         ast AST_LEFT take ctx lctx ast_push_value ;
@@ -3039,14 +3039,14 @@ fun ast_push_value_ptr 3 {
         ctx 0x68 cctx_emit ;
         ctx left_size cctx_emit32 ;
 
-	# pop eax; pop edx; imul edx; pop ecx; neg eax; add eax, ecx; push eax
+        # pop eax; pop edx; imul edx; pop ecx; neg eax; add eax, ecx; push eax
         ctx 0x58 cctx_emit ;
         ctx 0x5a cctx_emit ;
         ctx 0xf7 cctx_emit ;
         ctx 0xea cctx_emit ;
         ctx 0x59 cctx_emit ;
-	ctx 0xf7 cctx_emit ;
-	ctx 0xd8 cctx_emit ;
+        ctx 0xf7 cctx_emit ;
+        ctx 0xd8 cctx_emit ;
         ctx 0x01 cctx_emit ;
         ctx 0xc8 cctx_emit ;
         ctx 0x50 cctx_emit ;
@@ -3492,13 +3492,13 @@ fun cctx_compile_statement 2 {
         ctx type_idx @actual_type_idx @name 0 cctx_parse_declarator "cctx_compile_statement: error 1" assert_msg ;
         name 0 != "cctx_compile_statement: cannot instantiate variable without name" assert_msg ;
         lctx ctx actual_type_idx name lctx_push_var ;
-	@tok ctx cctx_get_token_or_fail = ;
-	if tok ";" strcmp 0 == {
-	  ctx cctx_give_back_token ;
-	  @cont 0 = ;
-	} else {
-	  tok "," strcmp 0 == "cctx_compile_statement: comma expected" assert_msg ;
-	}
+        @tok ctx cctx_get_token_or_fail = ;
+        if tok ";" strcmp 0 == {
+          ctx cctx_give_back_token ;
+          @cont 0 = ;
+        } else {
+          tok "," strcmp 0 == "cctx_compile_statement: comma expected" assert_msg ;
+        }
       }
     } else {
       # No type, so this is an expression

+ 49 - 49
asmg/mescc_hex2.g

@@ -244,58 +244,58 @@ fun hex2_link 1 {
       @cont 1 = ;
       while cont {
         $c
-	@c fd 0 hex2_read = ;
-	if c 0xffffffff == {
+        @c fd 0 hex2_read = ;
+        if c 0xffffffff == {
           @cont 0 = ;
-	} else {
-	  $processed
+        } else {
+          $processed
           @processed 0 = ;
           if c ':' == {
-	    $label
-	    $term
-	    @label fd @term hex2_read_token = ;
-	    term hex2_is_white "hex2_link: invalid realtive label definition" assert_msg ;
-	    if stage 1 == {
-	      labels label map_has ! "hex2_link: label already defined" assert_msg ;
-	      labels label ptr map_set ;
-	    }
-	    if stage 2 == {
-	      labels label map_has "hex2_link: error 1" assert_msg ;
-	      labels label map_at ptr == "hex2_link: error 2" assert_msg ;
-	    }
-	    label free ;
-	    @processed 1 = ;
-	  }
-	  if c '!' == {
-	    stage fd labels @ptr @count 1 1 hex2_process_reference ;
-	    @processed 1 = ;
-	  }
-	  if c '$' == {
-	    stage fd labels @ptr @count 2 0 hex2_process_reference ;
-	    @processed 1 = ;
-	  }
-	  if c '@' == {
-	    stage fd labels @ptr @count 2 1 hex2_process_reference ;
-	    @processed 1 = ;
-	  }
-	  if c '&' == {
-	    stage fd labels @ptr @count 4 0 hex2_process_reference ;
-	    @processed 1 = ;
-	  }
-	  if c '%' == {
-	    stage fd labels @ptr @count 4 1 hex2_process_reference ;
-	    @processed 1 = ;
-	  }
-	  if processed ! {
-	    $c2
-	    @c2 fd 0 hex2_read_or_fail = ;
-	    if ptr 0 != {
-	      ptr c c2 byte_from_hex =c ;
-	      @ptr ptr 1 + = ;
-	    }
-	    @count count 1 + = ;
-	  }
-	}
+            $label
+            $term
+            @label fd @term hex2_read_token = ;
+            term hex2_is_white "hex2_link: invalid realtive label definition" assert_msg ;
+            if stage 1 == {
+              labels label map_has ! "hex2_link: label already defined" assert_msg ;
+              labels label ptr map_set ;
+            }
+            if stage 2 == {
+              labels label map_has "hex2_link: error 1" assert_msg ;
+              labels label map_at ptr == "hex2_link: error 2" assert_msg ;
+            }
+            label free ;
+            @processed 1 = ;
+          }
+          if c '!' == {
+            stage fd labels @ptr @count 1 1 hex2_process_reference ;
+            @processed 1 = ;
+          }
+          if c '$' == {
+            stage fd labels @ptr @count 2 0 hex2_process_reference ;
+            @processed 1 = ;
+          }
+          if c '@' == {
+            stage fd labels @ptr @count 2 1 hex2_process_reference ;
+            @processed 1 = ;
+          }
+          if c '&' == {
+            stage fd labels @ptr @count 4 0 hex2_process_reference ;
+            @processed 1 = ;
+          }
+          if c '%' == {
+            stage fd labels @ptr @count 4 1 hex2_process_reference ;
+            @processed 1 = ;
+          }
+          if processed ! {
+            $c2
+            @c2 fd 0 hex2_read_or_fail = ;
+            if ptr 0 != {
+              ptr c c2 byte_from_hex =c ;
+              @ptr ptr 1 + = ;
+            }
+            @count count 1 + = ;
+          }
+        }
       }
       fd vfs_close ;
       @name_idx name_idx 1 + = ;

+ 13 - 13
asmg/mescc_m1.g

@@ -143,17 +143,17 @@ fun m1_tokenize_line 2 {
     } else {
       if 9 c == 10 c == || 32 c == || ! {
         if 0xffffffff c == {
-	  head ret ;
-	}
-	@p m1_new_token = ;
-	if 34 c == 39 c == || {
-	  p M1TOKEN_TEXT take_addr ctx c m1_store_string = ;
-	  p M1TOKEN_TYPE take_addr M1TOKEN_TYPE_STR = ;
-	} else {
-	  p M1TOKEN_TEXT take_addr ctx c m1_store_atom = ;
-	}
-	p M1TOKEN_NEXT take_addr head = ;
-	@head p = ;
+          head ret ;
+        }
+        @p m1_new_token = ;
+        if 34 c == 39 c == || {
+          p M1TOKEN_TEXT take_addr ctx c m1_store_string = ;
+          p M1TOKEN_TYPE take_addr M1TOKEN_TYPE_STR = ;
+        } else {
+          p M1TOKEN_TEXT take_addr ctx c m1_store_atom = ;
+        }
+        p M1TOKEN_NEXT take_addr head = ;
+        @head p = ;
       }
     }
   }
@@ -264,8 +264,8 @@ fun m1_process_string 2 {
         i M1TOKEN_EXPR take_addr i M1TOKEN_TEXT take 1 + = ;
       } else {
         if '\"' i M1TOKEN_TEXT take **c == {
-	  ctx i m1_hexify_string ;
-	}
+          ctx i m1_hexify_string ;
+        }
       }
     }
     @i i M1TOKEN_NEXT take = ;

+ 100 - 100
asmg/mescc_m2.g

@@ -106,11 +106,11 @@ fun m2_weird 1 {
       if string 2 + **c '1' == { 1 ret ; }
       if string 2 + **c '2' == {
         if string 3 + **c '2' == { 1 ret ; }
-	string 3 + m2_weird ret ;
+        string 3 + m2_weird ret ;
       }
       if string 2 + **c '3' == {
         if string 3 + **c 'A' == { 1 ret ; }
-	string 3 + m2_weird ret ;
+        string 3 + m2_weird ret ;
       }
       if string 2 + **c '8' == { 1 ret ; }
       if string 2 + **c '9' == { 1 ret ; }
@@ -180,10 +180,10 @@ fun m2_collect_regular_string 1 {
     } else {
       if string j + **c '\\' == {
         message i + string j + m2_escape_lookup =c ;
-	@j j 2 + = ;
+        @j j 2 + = ;
       } else {
         message i + string j + **c =c ;
-	@j j 1 + = ;
+        @j j 1 + = ;
       }
     }
     @i i 1 + = ;
@@ -217,13 +217,13 @@ fun m2_collect_weird_string 1 {
     } else {
       if string j + **c '\\' == {
         @temp string j + m2_escape_lookup = ;
-	hold k + 1 + table temp 4 >> + **c =c ;
-	hold k + 2 + table temp 15 & + **c =c ;
-	@j j 2 + = ;
+        hold k + 1 + table temp 4 >> + **c =c ;
+        hold k + 2 + table temp 15 & + **c =c ;
+        @j j 2 + = ;
       } else {
         hold k + 1 + table string j + **c 4 >> + **c =c ;
-	hold k + 2 + table string j + **c 15 & + **c =c ;
-	@j j 1 + = ;
+        hold k + 2 + table string j + **c 15 & + **c =c ;
+        @j j 1 + = ;
       }
     }
     @k k 3 + = ;
@@ -615,23 +615,23 @@ fun m2_get_token 2 {
         @c ctx M2CTX_INPUT take vfs_read = ;
         while c '/' != {
           while c '*' != {
-    	    @c ctx M2CTX_INPUT take vfs_read = ;
-    	    if c 10 == {
-    	      ctx M2CTX_LINE take_addr ctx M2CTX_LINE take 1 + = ;
-    	    }
-    	  }
-    	  @c ctx M2CTX_INPUT take vfs_read = ;
-    	  if c 10 == {
-    	    ctx M2CTX_LINE take_addr ctx M2CTX_LINE take 1 + = ;
-    	  }
+                @c ctx M2CTX_INPUT take vfs_read = ;
+                if c 10 == {
+                  ctx M2CTX_LINE take_addr ctx M2CTX_LINE take 1 + = ;
+                }
+              }
+              @c ctx M2CTX_INPUT take vfs_read = ;
+              if c 10 == {
+                ctx M2CTX_LINE take_addr ctx M2CTX_LINE take 1 + = ;
+              }
         }
-    	@c ctx M2CTX_INPUT take vfs_read = ;
-    	@cont 1 = ;
+            @c ctx M2CTX_INPUT take vfs_read = ;
+            @cont 1 = ;
       } else {
         if c '/' == {
           @c ctx M2CTX_INPUT take vfs_read = ;
-    	  @cont 1 = ;
-    	}
+              @cont 1 = ;
+            }
       }
       @processed 1 = ;
     }
@@ -770,12 +770,12 @@ fun m2_stack_index 3 {
     if i a == {
       if "main" function M2TLIST_S take strcmp 0 == {
         if "argc" i M2TLIST_S take strcmp 0 == {
-	  depth 4 - ret ;
-	} else {
-	  if "argv" i M2TLIST_S take strcmp 0 == {
-	    depth 4 + ret ;
-	  }
-	}
+          depth 4 - ret ;
+        } else {
+          if "argv" i M2TLIST_S take strcmp 0 == {
+            depth 4 + ret ;
+          }
+        }
       }
       depth ret ;
     } else {
@@ -909,9 +909,9 @@ fun m2_sym_get_value 4 {
     if "FUNCTION" a M2TLIST_TYPE take M2TYPE_NAME take strcmp 0 == {
       if "(" ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take strcmp 0 == ! {
         @out ctx "#Loading address of function\nLOAD_EFFECTIVE_ADDRESS %" out m2_emit = ;
-	@out ctx ctx a function m2_stack_index m2_numerate_number out m2_emit = ;
-	@out ctx "\nLOAD_INTEGER\n" out m2_emit = ;
-	out ret ;
+        @out ctx ctx a function m2_stack_index m2_numerate_number out m2_emit = ;
+        @out ctx "\nLOAD_INTEGER\n" out m2_emit = ;
+        out ret ;
       }
       ctx out function s 2 m2_function_call ret ;
     }
@@ -931,9 +931,9 @@ fun m2_sym_get_value 4 {
     if "FUNCTION" a M2TLIST_TYPE take M2TYPE_NAME take strcmp 0 == {
       if "(" ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take strcmp 0 == ! {
         @out ctx "#Loading address of function\nLOAD_EFFECTIVE_ADDRESS %" out m2_emit = ;
-	@out ctx ctx a function m2_stack_index m2_numerate_number out m2_emit = ;
-	@out ctx "\nLOAD_INTEGER\n" out m2_emit = ;
-	out ret ;
+        @out ctx ctx a function m2_stack_index m2_numerate_number out m2_emit = ;
+        @out ctx "\nLOAD_INTEGER\n" out m2_emit = ;
+        out ret ;
       }
       ctx out function s 1 m2_function_call ret ;
     }
@@ -1143,8 +1143,8 @@ fun m2_postfix_expr 3 {
 
       if 1 a M2TYPE_INDIRECT take M2TYPE_SIZE take != {
         @out ctx "SAL_eax_Immediate8 !" out m2_emit = ;
-	@out ctx a M2TYPE_INDIRECT take M2TYPE_SIZE take m2_ceil_log2 m2_numerate_number out m2_emit = ;
-	@out ctx "\n" out m2_emit = ;
+        @out ctx a M2TYPE_INDIRECT take M2TYPE_SIZE take m2_ceil_log2 m2_numerate_number out m2_emit = ;
+        @out ctx "\n" out m2_emit = ;
       }
 
       @out ctx "ADD_ebx_to_eax\n" out m2_emit = ;
@@ -1152,39 +1152,39 @@ fun m2_postfix_expr 3 {
 
       if "=" ctx M2CTX_GLOBAL_TOKEN take M2TLIST_NEXT take M2TLIST_S take strcmp 0 == ! {
         if 4 a M2TYPE_INDIRECT take M2TYPE_SIZE take == {
-	  @out ctx "LOAD_INTEGER\n" out m2_emit = ;
-	} else {
-	  @out ctx "LOAD_BYTE\n" out m2_emit = ;
-	}
+          @out ctx "LOAD_INTEGER\n" out m2_emit = ;
+        } else {
+          @out ctx "LOAD_BYTE\n" out m2_emit = ;
+        }
       }
       ctx "m2_postfix_expr: missing ]" "]" m2_require_match ;
     } else {
       if "->" ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take strcmp 0 == {
         @out ctx "# looking up offset\n" out m2_emit = ;
-	ctx M2CTX_GLOBAL_TOKEN take_addr ctx M2CTX_GLOBAL_TOKEN take M2TLIST_NEXT take = ;
-	$i
-	@i ctx M2CTX_CURRENT_TARGET take M2TYPE_MEMBERS take = ;
-	$cont
-	@cont 1 = ;
-	while i 0 != cont && {
-	  if i M2TYPE_NAME take ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take strcmp 0 == {
-	    @cont 0 = ;
-	  } else {
-	    @i i M2TYPE_MEMBERS take = ;
-	  }
-	}
-	i 0 != "m2_postfix_expr: field does not exist" assert_msg ;
-	if 0 i M2TYPE_OFFSET take != {
-	  @out ctx "# -> offset calculation\n" out m2_emit = ;
-	  @out ctx "LOAD_IMMEDIATE_ebx %" out m2_emit = ;
-	  @out ctx i M2TYPE_OFFSET take m2_numerate_number out m2_emit = ;
-	  @out ctx "\nADD_ebx_to_eax\n" out m2_emit = ;
-	}
-	if "=" ctx M2CTX_GLOBAL_TOKEN take M2TLIST_NEXT take M2TLIST_S take strcmp 0 == ! {
-	  @out ctx "LOAD_INTEGER\n" out m2_emit = ;
-	}
-	ctx M2CTX_CURRENT_TARGET take_addr i M2TYPE_TYPE take = ;
-	ctx M2CTX_GLOBAL_TOKEN take_addr ctx M2CTX_GLOBAL_TOKEN take M2TLIST_NEXT take = ;
+        ctx M2CTX_GLOBAL_TOKEN take_addr ctx M2CTX_GLOBAL_TOKEN take M2TLIST_NEXT take = ;
+        $i
+        @i ctx M2CTX_CURRENT_TARGET take M2TYPE_MEMBERS take = ;
+        $cont
+        @cont 1 = ;
+        while i 0 != cont && {
+          if i M2TYPE_NAME take ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take strcmp 0 == {
+            @cont 0 = ;
+          } else {
+            @i i M2TYPE_MEMBERS take = ;
+          }
+        }
+        i 0 != "m2_postfix_expr: field does not exist" assert_msg ;
+        if 0 i M2TYPE_OFFSET take != {
+          @out ctx "# -> offset calculation\n" out m2_emit = ;
+          @out ctx "LOAD_IMMEDIATE_ebx %" out m2_emit = ;
+          @out ctx i M2TYPE_OFFSET take m2_numerate_number out m2_emit = ;
+          @out ctx "\nADD_ebx_to_eax\n" out m2_emit = ;
+        }
+        if "=" ctx M2CTX_GLOBAL_TOKEN take M2TLIST_NEXT take M2TLIST_S take strcmp 0 == ! {
+          @out ctx "LOAD_INTEGER\n" out m2_emit = ;
+        }
+        ctx M2CTX_CURRENT_TARGET take_addr i M2TYPE_TYPE take = ;
+        ctx M2CTX_GLOBAL_TOKEN take_addr ctx M2CTX_GLOBAL_TOKEN take M2TLIST_NEXT take = ;
       } else {
         out ret ;
       }
@@ -1498,8 +1498,8 @@ fun m2_expression 3 {
         @out ctx "STORE_CHAR\n" out m2_emit = ;
       } else {
         if 4 target M2TYPE_INDIRECT take M2TYPE_SIZE take == {
-	  @out ctx "STORE_INTEGER\n" out m2_emit = ;
-	}
+          @out ctx "STORE_INTEGER\n" out m2_emit = ;
+        }
       }
     } else {
       @out ctx "STORE_INTEGER\n" out m2_emit = ;
@@ -2060,40 +2060,40 @@ fun m2_program 2 {
       @type_size ctx m2_type_name = ;
       if 0 type_size != {
         ctx M2CTX_GLOBAL_TOKEN take_addr ctx M2CTX_GLOBAL_TOKEN take M2TLIST_NEXT take = ;
-	if ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take **c ';' == {
-	  ctx M2CTX_GLOBAL_SYMBOL_LIST take_addr ctx ctx M2CTX_GLOBAL_TOKEN take M2TLIST_PREV take M2TLIST_S take type_size ctx M2CTX_GLOBAL_SYMBOL_LIST take m2_sym_declare = ;
-	  ctx M2CTX_GLOBALS_LIST take_addr ctx ":GLOBAL_" ctx M2CTX_GLOBALS_LIST take m2_emit = ;
-	  ctx M2CTX_GLOBALS_LIST take_addr ctx ctx M2CTX_GLOBAL_TOKEN take M2TLIST_PREV take M2TLIST_S take ctx M2CTX_GLOBALS_LIST take m2_emit = ;
-	  ctx M2CTX_GLOBALS_LIST take_addr ctx "\nNOP\n" ctx M2CTX_GLOBALS_LIST take m2_emit = ;
-	  ctx M2CTX_GLOBAL_TOKEN take_addr ctx M2CTX_GLOBAL_TOKEN take M2TLIST_NEXT take = ;
-	} else {
-	  if ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take **c '=' == {
-	    ctx M2CTX_GLOBAL_SYMBOL_LIST take_addr ctx ctx M2CTX_GLOBAL_TOKEN take M2TLIST_PREV take M2TLIST_S take type_size ctx M2CTX_GLOBAL_SYMBOL_LIST take m2_sym_declare = ;
-	    ctx M2CTX_GLOBALS_LIST take_addr ctx ":GLOBAL_" ctx M2CTX_GLOBALS_LIST take m2_emit = ;
-	    ctx M2CTX_GLOBALS_LIST take_addr ctx ctx M2CTX_GLOBAL_TOKEN take M2TLIST_PREV take M2TLIST_S take ctx M2CTX_GLOBALS_LIST take m2_emit = ;
-	    ctx M2CTX_GLOBALS_LIST take_addr ctx "\n" ctx M2CTX_GLOBALS_LIST take m2_emit = ;
-	    ctx M2CTX_GLOBAL_TOKEN take_addr ctx M2CTX_GLOBAL_TOKEN take M2TLIST_NEXT take = ;
-	    if '0' ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take **c <= ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take **c '9' <= & {
-	      ctx M2CTX_GLOBALS_LIST take_addr ctx "%" ctx M2CTX_GLOBALS_LIST take m2_emit = ;
-	      ctx M2CTX_GLOBALS_LIST take_addr ctx ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take ctx M2CTX_GLOBALS_LIST take m2_emit = ;
-	      ctx M2CTX_GLOBALS_LIST take_addr ctx "\n" ctx M2CTX_GLOBALS_LIST take m2_emit = ;
-	    } else {
-	      if '\"' ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take **c <= {
-	        ctx M2CTX_GLOBALS_LIST take_addr ctx ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take m2_parse_string ctx M2CTX_GLOBALS_LIST take m2_emit = ;
-	      } else {
-	        0 "m2_program: invalid token in program" assert_msg ;
-	      }
-	    }
-	    ctx M2CTX_GLOBAL_TOKEN take_addr ctx M2CTX_GLOBAL_TOKEN take M2TLIST_NEXT take = ;
-	    ctx "m2_program: missing ;" ";" m2_require_match ;
-	  } else {
-	    if ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take **c '(' == {
-	      @out ctx out type_size m2_declare_function = ;
-	    } else {
-	      0 "m2_program: invalid token in program" assert_msg ;
-	    }
-	  }
-	}
+        if ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take **c ';' == {
+          ctx M2CTX_GLOBAL_SYMBOL_LIST take_addr ctx ctx M2CTX_GLOBAL_TOKEN take M2TLIST_PREV take M2TLIST_S take type_size ctx M2CTX_GLOBAL_SYMBOL_LIST take m2_sym_declare = ;
+          ctx M2CTX_GLOBALS_LIST take_addr ctx ":GLOBAL_" ctx M2CTX_GLOBALS_LIST take m2_emit = ;
+          ctx M2CTX_GLOBALS_LIST take_addr ctx ctx M2CTX_GLOBAL_TOKEN take M2TLIST_PREV take M2TLIST_S take ctx M2CTX_GLOBALS_LIST take m2_emit = ;
+          ctx M2CTX_GLOBALS_LIST take_addr ctx "\nNOP\n" ctx M2CTX_GLOBALS_LIST take m2_emit = ;
+          ctx M2CTX_GLOBAL_TOKEN take_addr ctx M2CTX_GLOBAL_TOKEN take M2TLIST_NEXT take = ;
+        } else {
+          if ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take **c '=' == {
+            ctx M2CTX_GLOBAL_SYMBOL_LIST take_addr ctx ctx M2CTX_GLOBAL_TOKEN take M2TLIST_PREV take M2TLIST_S take type_size ctx M2CTX_GLOBAL_SYMBOL_LIST take m2_sym_declare = ;
+            ctx M2CTX_GLOBALS_LIST take_addr ctx ":GLOBAL_" ctx M2CTX_GLOBALS_LIST take m2_emit = ;
+            ctx M2CTX_GLOBALS_LIST take_addr ctx ctx M2CTX_GLOBAL_TOKEN take M2TLIST_PREV take M2TLIST_S take ctx M2CTX_GLOBALS_LIST take m2_emit = ;
+            ctx M2CTX_GLOBALS_LIST take_addr ctx "\n" ctx M2CTX_GLOBALS_LIST take m2_emit = ;
+            ctx M2CTX_GLOBAL_TOKEN take_addr ctx M2CTX_GLOBAL_TOKEN take M2TLIST_NEXT take = ;
+            if '0' ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take **c <= ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take **c '9' <= & {
+              ctx M2CTX_GLOBALS_LIST take_addr ctx "%" ctx M2CTX_GLOBALS_LIST take m2_emit = ;
+              ctx M2CTX_GLOBALS_LIST take_addr ctx ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take ctx M2CTX_GLOBALS_LIST take m2_emit = ;
+              ctx M2CTX_GLOBALS_LIST take_addr ctx "\n" ctx M2CTX_GLOBALS_LIST take m2_emit = ;
+            } else {
+              if '\"' ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take **c <= {
+                ctx M2CTX_GLOBALS_LIST take_addr ctx ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take m2_parse_string ctx M2CTX_GLOBALS_LIST take m2_emit = ;
+              } else {
+                0 "m2_program: invalid token in program" assert_msg ;
+              }
+            }
+            ctx M2CTX_GLOBAL_TOKEN take_addr ctx M2CTX_GLOBAL_TOKEN take M2TLIST_NEXT take = ;
+            ctx "m2_program: missing ;" ";" m2_require_match ;
+          } else {
+            if ctx M2CTX_GLOBAL_TOKEN take M2TLIST_S take **c '(' == {
+              @out ctx out type_size m2_declare_function = ;
+            } else {
+              0 "m2_program: invalid token in program" assert_msg ;
+            }
+          }
+        }
       }
     }
   }