Expand description
All the stuff to parse z80 code.
Modules§
- …
Structs§
- The self-referencing struct.
- Add span information for a Token.
- Context information that can guide the parser TODO add assembling flags
Enums§
- State to limit the parsing abilities depending on the parsing context
Statics§
Traits§
- Implement this trait for type previousy defined without source location.
- Trait to handle the span of listing elements
Functions§
- Parse operation related to + - & |
- Parse an expression
- …
- Workaround because many0 is not used in the main root function TODO add an argument to handle context change
- TODO replace ALL expr parse by a located version
- nom many0 does not seem to fit our parser requirements TODO check if winnow is better on this side
- Handle \ in end of line
- Handle \ in end of line
- Read a parenthesed expression
- Parse ADC and ADD instructions
- Parse an address access
(expression)
- …
- Parse the single opcode assembling function
- …
- TODO
- Parse the instruction to hide basic lines
- parse functions with two arguments
- Parse a breakpoint instruction
- TODO reduce the flag space for jr“],
- Parse a comment that start by
;
and ends at the end of the line. - Parse if expression.TODO finish the implementation in order to have ELSEIF and ELSE branches“ TODO shorten the string code source
- Parse a repetition counter
- Parse CP tokens
- Parse a sub-listing part that aims at being crunched after being assembled at first pass
- Parse DB DW directives
- Parse defs instruction. TODO add optional parameters
- Parse any directive
- Here local_parsing_state only serves to adapt DB/DW/STR behavior in struct. Maybe it should be used to control the directives of interest BEFORE there parsing instead of after. No filtering is done
- …
- Parse the duration function
- Parse ex af, af’ instruction
- Parse ex hl, de instruction
- Parse ex (sp), hl
- Parse an expression and returns it inside a DataAccession::Expression
- Get a factor
- …
- Accept “fname” as in most assemblers and fname as in vasm
- TODO - limit the listing possibilities
- Parse (HL)
- Parse the IM instruction
- Parse all the in flavors
- …
- Parse for the various binary include directives
- Parser for the include directive
- Parse and indexed register in 8bits
- Parse a 16 bits indexed register
- Parse (ix) and (iy)
- Parse the use of an indexed register as (IX + 5)“
- Parse a label(label: S) TODO reimplement to never build a string
- Parse fake and real LD instructions
- Parse artifical LD instruction (would be replaced by several real instructions)
- Parse the valids LD versions
- Parse a line (ie a set of components separated by :) until the end of the line or a stop directive XXX: In opposite to the other functions, the result is stored in the parameter (to avoid unnecessary memory allocations and copies)
- Optionally return a label and a command next token is a separator :, \n, eof
- TODO - currently consume several lines. Should do it only one time
- …
- TODO
- TODO remove by restore the way to parse the macro name
- Manage the call of a macro.
- Parse any opcode having no argument
- Parse standard org directive
- TODO manage other out formats
- Parse (C) used in in/out
- Parse (nn) used in in/out
- …
- …
- …
- Parse (R16)
- Parse any standard 16bits register TODO rename to emphasize it is standard reigsters
- Parse any standard 16bits register TODO rename to emphasize it is standard reigsters
- Parse register $char
- Parse the $char register and return it as a DataAccess
- Parse register $char
- Parse the $char register and return it as a DataAccess
- Parse register $char
- Parse register $char
- Parse the $char register and return it as a DataAccess
- Parse register $char
- Parse register $char
- Parse the $char register and return it as a DataAccess
- Parse register i
- Parse the IX register
- Parse register $reg
- Parse register $reg
- Parse the IY register
- Parse register $reg
- Parse register $reg
- Parse register $char
- Parse register r
- Parse the $char register and return it as a DataAccess
- Parse RES, SET and BIT instructions
- …
- TODO
- Parse the rst instruction
- Parse both save directive and write direct in a file
- Par se the SBC instruction
- Parse all RLC, RL, RR, SLA, SRA flavors RLC A RLC B RLC C RLC D RLC E RLC H RLC L RLC (HL) RLC (IX+n) RLC (IY+n)
- Parse tickin directives
- Parse begining of ticker
- Parse end of ticker
- Parser for file names in appropriate directives
- Substraction with A register
- Parse the switch directive
- parse functions with one argument
- Parse UNDEF directive.
- Read a value
- TODO
- parse write direct in memory / converted to a bank directive we do not care of the parameters for roms as we are not working in an emulator
- TODO better to build parse_z80_with_options from parse_z80_span than the opposite
- Parse a string and return the corresponding listing
- Produce the stream of tokens. In case of error, return an explanatory string. In case of success loop over all the tokens in order to expand those that read files
- TODO
- Compute operations related to * % /
- Parser for functions taking into argument a token