Difference between revisions of "Forth parser"
From ScienceZero
(→Default opcode equivalency for forth words) |
|||
Line 1: | Line 1: | ||
− | + | == Example 1 == | |
+ | : lsl for dup + next ; ( Simple complete function that implements left shift by repeated addition ) | ||
+ | |||
":" this tells the parser to define a new function | ":" this tells the parser to define a new function | ||
"lsl" is the name of the function | "lsl" is the name of the function |
Revision as of 16:44, 24 April 2018
Example 1
: lsl for dup + next ; ( Simple complete function that implements left shift by repeated addition ) ":" this tells the parser to define a new function "lsl" is the name of the function Adr Value 0 0xF0 ( for ) 1 0xE0 ( dup ) 2 0xC0 ( add ) 3 0xF1 ( next ) ";" tells the parser that it has reached the end of the definition The parser should create an "object" in memory like: "lsl",0xF0,0xE0,0xC0,0xF1 input text --> look up tables --> output binary How to encode numbers: if number = 0 then emit LDC #0 else find the topmost hex digit that is not 0, call it x emit LDC #x zero out that digit for each remaining digit y, zero or not emit LDE #y
Default opcode equivalency for forth words
Forth string - opcode + - add - - sub * - mul / - div
dup - dup