From 9315bc09ddb0f405988647ac6d12d0b4f382b2f2 Mon Sep 17 00:00:00 2001 From: gnembon Date: Mon, 28 Oct 2019 21:55:27 -0300 Subject: [PATCH] simplified string parsing. --- src/main/java/carpet/script/Tokenizer.java | 23 +++---- .../assets/carpet/scripts/event_test.sc | 63 ++++++++++++++++--- 2 files changed, 63 insertions(+), 23 deletions(-) diff --git a/src/main/java/carpet/script/Tokenizer.java b/src/main/java/carpet/script/Tokenizer.java index 4a4ba257..88880473 100644 --- a/src/main/java/carpet/script/Tokenizer.java +++ b/src/main/java/carpet/script/Tokenizer.java @@ -121,12 +121,9 @@ public class Tokenizer implements Iterator { pos++; linepos++; - if (pos == input.length()) - { - token.type = Token.TokenType.STRINGPARAM; - if (expression != null) - throw new ExpressionException(this.expression, token, "Program truncated"); - } + token.type = Token.TokenType.STRINGPARAM; + if (pos == input.length() && expression != null) + throw new ExpressionException(this.expression, token, "Program truncated"); ch = input.charAt(pos); while (ch != '\'') { @@ -134,20 +131,18 @@ public class Tokenizer implements Iterator { pos++; linepos++; - if (pos == input.length()) - { - token.type = Token.TokenType.STRINGPARAM; - if (expression != null) - throw new ExpressionException(this.expression, token, "Program truncated"); - } + if (pos == input.length() && expression != null) + throw new ExpressionException(this.expression, token, "Program truncated"); } token.append(input.charAt(pos++)); linepos++; - ch = pos == input.length() ? 0 : input.charAt(pos); + if (pos == input.length() && expression != null) + throw new ExpressionException(this.expression, token, "Program truncated"); + ch = input.charAt(pos); } pos++; linepos++; - token.type = Token.TokenType.STRINGPARAM; + } else if (Character.isLetter(ch) || "_".indexOf(ch) >= 0) { diff --git a/src/main/resources/assets/carpet/scripts/event_test.sc b/src/main/resources/assets/carpet/scripts/event_test.sc index 38f0b93b..a372c17b 100644 --- a/src/main/resources/assets/carpet/scripts/event_test.sc +++ b/src/main/resources/assets/carpet/scripts/event_test.sc @@ -1,13 +1,26 @@ -__on_player_jumps(player) -> print('Player '+player+' jumps.'); +__on_player_jumps(player) -> ( + print(''); + print('__on_player_jumps(player)'); + print('Player '+player+' jumps.') +); -__on_player_deploys_elytra(player) -> print('Player '+player+' deploys elytra.'); +__on_player_deploys_elytra(player) -> ( + print(''); + print('__on_player_deploys_elytra(player)'); + print('Player '+player+' deploys elytra.') +); -__on_player_wakes_up(player) -> print('Player '+player+' wakes up. Lemme know when this starts working'); +__on_player_wakes_up(player) -> ( + print(''); + print('__on_player_wakes_up(player)'); + print('Player '+player+' wakes up. Lemme know when this starts working') +); __on_player_rides(player, forward, strafe, jumping, sneaking) -> ( print(''); + print('__on_player_rides(player, forward, strafe, jumping, sneaking)'); print('player rides a vehicle:'); print(' - player: '+player); print(' - forward/backward: '+forward); @@ -20,6 +33,7 @@ __on_player_uses_item(player, item_tuple, hand) -> ( l(item, count, nbt) = item_tuple || l('None', 0, null); print(''); + print('__on_player_uses_item(player, item_tuple, hand)'); print('player uses an item:'); print(' - player: '+player); print(' - item:'); @@ -32,6 +46,7 @@ __on_player_uses_item(player, item_tuple, hand) -> __on_player_clicks_block(player, block, face) -> ( print(''); + print('__on_player_clicks_block(player, block, face)'); print('player clicks a block:'); print(' - player: '+player); print(' - block: '+block+' at '+map(pos(block), str('%.2f',_))); @@ -43,6 +58,7 @@ __on_player_right_clicks_block(player, item_tuple, hand, block, face, hitvec) -> ( l(item, count, nbt) = item_tuple || l('None', 0, null); print(''); + print('__on_player_right_clicks_block(player, item_tuple, hand, block, face, hitvec) '); print('block right clicked by player:'); print(' - player: '+player); print(' - item: '+item); @@ -55,6 +71,7 @@ __on_player_right_clicks_block(player, item_tuple, hand, block, face, hitvec) -> __on_player_breaks_block(player, block) -> ( print(''); + print('__on_player_breaks_block(player, block)'); print('player breaks block:'); print(' - player: '+player); print(' - block: '+block+' at '+map(pos(block), str('%.2f',_))) @@ -63,6 +80,7 @@ __on_player_breaks_block(player, block) -> __on_player_interacts_with_entity(player, entity, hand) -> ( print(''); + print('__on_player_interacts_with_entity(player, entity, hand)'); print('player interacts with entity:'); print(' - player: '+player); print(' - entity: '+entity+' at '+map(pos(entity), str('%.2f',_))); @@ -72,23 +90,41 @@ __on_player_interacts_with_entity(player, entity, hand) -> __on_player_attacks_entity(player, entity) -> ( print(''); + print('__on_player_attacks_entity(player, entity)'); print('player attacks entity:'); print(' - player: '+player); print(' - entity: '+entity+' at '+map(pos(entity), str('%.2f',_))) ); -__on_player_starts_sneaking(player) -> print('Player '+player+' starts sneaking.'); +__on_player_starts_sneaking(player) -> ( + print(''); + print('__on_player_starts_sneaking(player)'); + print('Player '+player+' starts sneaking.') +); -__on_player_stops_sneaking(player) -> print('Player '+player+' stops sneaking.'); +__on_player_stops_sneaking(player) -> ( + print(''); + print('__on_player_stops_sneaking(player)'); + print(' Player '+player+' stops sneaking.') +); -__on_player_starts_sprinting(player) -> print('Player '+player+' starts sprinting.'); +__on_player_starts_sprinting(player) -> ( + print(''); + print('__on_player_starts_sprinting(player)'); + print(' Player '+player+' starts sprinting.') +); -__on_player_stops_sprinting(player) -> print('Player '+player+' stops sprinting.'); +__on_player_stops_sprinting(player) -> ( + print(''); + print('__on_player_stops_sprinting(player)'); + print('Player '+player+' stops sprinting.') +); __on_player_releases_item(player, item_tuple, hand) -> ( l(item, count, nbt) = item_tuple || l('None', 0, null); print(''); + print('__on_player_releases_item(player, item_tuple, hand)'); print('player releases an item:'); print(' - player: '+player); print(' - item:'); @@ -102,6 +138,7 @@ __on_player_finishes_using_item(player, item_tuple, hand) -> ( l(item, count, nbt) = item_tuple || l('None', 0, null); print(''); + print('__on_player_finishes_using_item(player, item_tuple, hand)'); print('player finishes using an item:'); print(' - player: '+player); print(' - item:'); @@ -111,6 +148,14 @@ __on_player_finishes_using_item(player, item_tuple, hand) -> print(' - hand: '+hand) ); -__on_player_drops_item(player) -> print('Player '+player+' drops current item.'); +__on_player_drops_item(player) -> ( + print(''); + print('__on_player_drops_item(player)'); + print('Player '+player+' drops current item.') +); -__on_player_drops_stack(player) -> print('Player '+player+' drops current stack.'); \ No newline at end of file +__on_player_drops_stack(player) -> ( + print(''); + print('__on_player_drops_stack(player)'); + print('Player '+player+' drops current stack.') +); \ No newline at end of file