mirror of
https://github.com/pezkuwichain/revive.git
synced 2026-05-09 01:18:00 +00:00
94ec34c4d5
Separate between compilation and linker phases to allow deploy time linking and back-porting era compiler changes to fix #91. Unlinked contract binaries (caused by missing libraries or missing factory dependencies in turn) are emitted as raw ELF object. Few drive by fixes: - #98 - A compiler panic on missing libraries definitions. - Fixes some incosistent type forwarding in JSON output (empty string vs. null object). - Remove the unused fallback for size optimization setting. - Remove the broken `--lvm-ir` mode. - CI workflow fixes. --------- Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com> Signed-off-by: xermicus <bigcyrill@hotmail.com> Signed-off-by: xermicus <cyrill@parity.io>
19 lines
493 B
Rust
19 lines
493 B
Rust
//! The YUL code block.
|
|
|
|
use crate::lexer::error::Error as LexerError;
|
|
use crate::lexer::token::Token;
|
|
use crate::lexer::Lexer;
|
|
|
|
pub mod error;
|
|
pub mod identifier;
|
|
pub mod statement;
|
|
pub mod r#type;
|
|
|
|
/// Returns the `token` value if it is `Some(_)`, otherwise takes the next token from the `stream`.
|
|
pub fn take_or_next(mut token: Option<Token>, lexer: &mut Lexer) -> Result<Token, LexerError> {
|
|
match token.take() {
|
|
Some(token) => Ok(token),
|
|
None => lexer.next(),
|
|
}
|
|
}
|