annotate src/pass1.c @ 13:05d4115b4860

Started work on new expression evaluator system and major code re-work for next release
author lost
date Wed, 22 Oct 2008 04:51:16 +0000
parents
children 3c0e5f311c95
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
1 /*
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
2 pass1.c
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
3 Copyright © 2008 William Astle
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
4
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
5 This file is part of LWASM.
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
6
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
7 LWASM is free software: you can redistribute it and/or modify it under the
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
8 terms of the GNU General Public License as published by the Free Software
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
9 Foundation, either version 3 of the License, or (at your option) any later
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
10 version.
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
11
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
12 This program is distributed in the hope that it will be useful, but WITHOUT
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
15 more details.
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
16
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
17 You should have received a copy of the GNU General Public License along with
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
18 this program. If not, see <http://www.gnu.org/licenses/>.
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
19
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
20
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
21 Handles first pass of assembly
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
22
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
23 First pass involves the following:
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
24
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
25 1. read all lines from the main source file, following all "include"
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
26 directives as appropriate
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
27 2. parse each line into a symbol, operation code, and operand as appropriate
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
28 3. each operand is evaluated for syntax and futher for value if there are
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
29 multiple addressing sizes available; any undefined or not fully resolved
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
30 value will default to the largest addressing size available (16 bit)
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
31 4. addresses are assigned to every symbol defined in the assembly
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
32 5. macros are defined and expanded at this pass
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
33
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
34
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
35 */
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
36
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
37 #ifdef HAVE_CONFIG_H
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
38 #include "config.h"
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
39 #endif
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
40
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
41 #include <argp.h>
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
42 #include <errno.h>
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
43 #include <stdio.h>
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
44 #include <stdlib.h>
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
45
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
46 #include "lwasm.h"
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
47
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
48 void lwasm_pass1(asmstate_t *as)
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
49 {
05d4115b4860 Started work on new expression evaluator system and major code re-work for next release
lost
parents:
diff changeset
50 }