From 955effd621ee2e2444d90d1f7c12df531879b6a4 Mon Sep 17 00:00:00 2001 From: Nilstrieb <48135649+Nilstrieb@users.noreply.github.com> Date: Sat, 25 Jun 2022 18:12:57 +0200 Subject: [PATCH] direct declarator --- Cargo.lock | 24 ++++++++++++------------ parser/src/parser.rs | 8 +++++--- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 80f454d..441a531 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -80,9 +80,9 @@ dependencies = [ [[package]] name = "dbg-pls" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f28b65c59b1830ac65640335cf2ebef868e8c9982d1cbab01ce843ebe74d37a" +checksum = "50e8bb7470a10e67fb07347d044987e38a7d28ede5a2febfea112626145d885d" dependencies = [ "dbg-pls-derive", "itoa", @@ -98,9 +98,9 @@ dependencies = [ [[package]] name = "dbg-pls-derive" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18ad0d32e09e083b0bf764cc9c2f1956518afb16b6ae0e1110c909d056f8271f" +checksum = "cec2fcd181de78b524aec9f40127b2a49d8d0aa8347594fb4d6e17f02b9fc9ff" dependencies = [ "proc-macro2", "quote", @@ -137,9 +137,9 @@ checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3" [[package]] name = "indexmap" -version = "1.9.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c6392766afd7964e2531940894cffe4bd8d7d17dbc3c1c4857040fd4b33bdb3" +checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" dependencies = [ "autocfg", "hashbrown", @@ -290,9 +290,9 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3662417e650bd6af740f5b8b3501776aa10c3d5cbd10b40263ed250d3770884" +checksum = "9e1516508b396cefe095485fdce673007422f5e48e82934b7b423dc26aa5e6a4" dependencies = [ "proc-macro2", "syn", @@ -405,9 +405,9 @@ checksum = "2e24979f63a11545f5f2c60141afe249d4f19f84581ea2138065e400941d83d3" [[package]] name = "smallvec" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +checksum = "cc88c725d61fc6c3132893370cac4a0200e3fedf5da8331c570664b1987f5ca2" [[package]] name = "smawk" @@ -471,9 +471,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82501a4c1c0330d640a6e176a3d6a204f5ec5237aca029029d21864a902e27b0" +checksum = "72c91f41dcb2f096c05f0873d667dceec1087ce5bcf984ec8ffb19acddbb3217" dependencies = [ "itoa", "libc", diff --git a/parser/src/parser.rs b/parser/src/parser.rs index 370e614..110ea14 100644 --- a/parser/src/parser.rs +++ b/parser/src/parser.rs @@ -279,11 +279,13 @@ where /// direct-declarator ( parameter-type-list ) /// direct-declarator ( identifier-listopt ) fn direct_declarator(&mut self) -> Result> { - if let Some((Tok::Ident(name), span)) = eat!(self, Tok::Ident(_)) { - return Ok((DirectDeclarator::Ident((name.to_owned(), span)), span)); + let (ident, span) = self.ident()?; + + if (eat!(self, Tok::Punct(Punct::ParenOpen))).is_some() { + todo!("haha, no parentheses for you!") } - todo!() + Ok((DirectDeclarator::Ident((ident, span)), span)) } // -----------------------