asar coverage - build #100


src/asar/
File: src/asar/assembleblock.h
Date: 2024-01-19 20:26:51
Lines:
7/7
100.0%
Functions:
1/1
100.0%
Branches:
0/0
-%

Line Branch Exec Source
1 #pragma once
2
3 enum { arch_65816, arch_spc700, arch_superfx };
4 extern int arch;
5
6 bool assemblemapper(char** word, int numwords);
7
8 struct snes_struct {
9 string parent;
10 int base_end;
11 int struct_size;
12 int object_size;
13 bool is_static;
14 };
15
16 extern assocarr<snes_struct> structs;
17 extern int label_counter;
18
19
20 struct snes_label {
21 unsigned int pos;
22 int id;
23 int freespace_id;
24 bool is_static;
25
26 9836 snes_label()
27 9836 {
28 9836 pos = 0;
29 9836 is_static = false;
30 9836 freespace_id = 0;
31 9836 id = label_counter++;
32 9836 }
33 };
34
35
36 // RPG Hacker: Really the only purpose of this struct is to support pushtable and pulltable
37 // Also don't know where else to put this, so putting it in this header
38 /*struct chartabledata {
39 unsigned int table[256];
40 };
41
42 extern chartabledata table;
43 unsigned int get_table_val(int inp);
44 void set_table_val(int inp, unsigned int out);*/
45
46 struct whiletracker {
47 bool iswhile;
48 int startline;
49 bool cond;
50 bool is_for;
51 string for_variable;
52 string for_var_backup;
53 bool for_has_var_backup;
54 int for_start;
55 int for_end;
56 int for_cur;
57 };
58
59 extern autoarray<whiletracker> whilestatus;
60
61 // 0 - not first block, not in for
62 // 1 - first block
63 // 2 - inside single-line for
64 // 3 - after endfor
65 extern int single_line_for_tracker;
66
67 bool confirmname(const char * name);
68 string posneglabelname(const char ** input, bool define);
69
70 void write1_pick(unsigned int num);
71 void write2(unsigned int num);
72 void write3(unsigned int num);
73 void write4(unsigned int num);
74
75 int snestopc_pick(int addr);
76
77 int getlenfromchar(char c);
78
79 snes_label labelval(const char ** rawname, bool define = false);
80 snes_label labelval(string name, bool define = false);
81 bool labelval(const char ** rawname, snes_label * rval, bool define = false);
82 bool labelval(string name, snes_label * rval, bool define = false);
83
84 const char * safedequote(char * str);
85
86 void checkbankcross();
87
88 void initstuff();
89 void finishpass();
90
91 void assembleblock(const char * block, int& single_line_for_tracker);
92
93 extern int snespos;
94 extern int realsnespos;
95 extern int startpos;
96 extern int realstartpos;
97
98 extern int bytes;
99
100 extern int numopcodes;
101
102 extern int numif;
103 extern int numtrue;
104
105 extern int freespaceid;
106
107 extern assocarr<snes_label> labels;
108
109 extern autoarray<int>* macroposlabels;
110 extern autoarray<int>* macroneglabels;
111 extern autoarray<string>* macrosublabels;
112
113 extern autoarray<string> sublabels;
114 extern string ns;
115 extern autoarray<string> namespace_list;
116
117 extern autoarray<string> includeonce;
118