Compare commits
No commits in common. "14c0cb2760cf73ea0f25f00dae725bd7836c3d16" and "2d7a7491fa7b9453acff00f48062b8568792b193" have entirely different histories.
14c0cb2760
...
2d7a7491fa
@ -56,11 +56,6 @@ example as invalid: it misleads what the result of the operation is.
|
||||
This change is consistent with what is written in the SCU manual
|
||||
(ST-97-R5-072694), but is inconsistent with SEGA's SCU DSP examples.
|
||||
|
||||
.. note::
|
||||
|
||||
It is currently unclear which of the two is correct. A future
|
||||
version of scu-dsp-asm may change this behavior.
|
||||
|
||||
Differences that affect code generation
|
||||
=======================================
|
||||
|
||||
@ -90,8 +85,8 @@ In short:
|
||||
Spurious invalid X-bus opcode generation
|
||||
----------------------------------------
|
||||
|
||||
Under seemingly-random circumstances, ``dspasm.exe`` emits the
|
||||
undefined X-bus opcode ``001``. Given:
|
||||
Under seemly-random circumstances, ``dspasm.exe`` emits the undefined
|
||||
X-bus opcode ``001``. Given:
|
||||
|
||||
.. code::
|
||||
|
||||
|
35
lexer_iterator.cpp
Normal file
35
lexer_iterator.cpp
Normal file
@ -0,0 +1,35 @@
|
||||
#include "lexer.hpp"
|
||||
#include "token.hpp"
|
||||
|
||||
namespace dsp {
|
||||
|
||||
struct lexer_iterator_t
|
||||
{
|
||||
token_t previous_token;
|
||||
token_t current_token;
|
||||
lexer_t& lexer;
|
||||
|
||||
lexer_iterator_t(lexer_t& lexer)
|
||||
: lexer(lexer), previous_token(lexer.scan_token()), current_token(previous_token)
|
||||
{
|
||||
}
|
||||
|
||||
token_t& advance()
|
||||
{
|
||||
previous_token = current_token;
|
||||
current_token = lexer.scan_token();
|
||||
return previous_token;
|
||||
}
|
||||
|
||||
token_t& peek()
|
||||
{
|
||||
return current_token;
|
||||
}
|
||||
|
||||
token_t& previous()
|
||||
{
|
||||
return previous_token;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user