simplified string parsing.

This commit is contained in:
gnembon committed 2019-10-28 21:55:27 -03:00
1 parent 144f3a2ad8
commit 9315bc09dd
2 files changed
+63 -23

No files matched your search

+9 -14
View File
@@ -121,12 +121,9 @@ public class Tokenizer implements Iterator<Tokenizer.Token>
{ {
pos++; pos++;
linepos++; linepos++;
if (pos == input.length()) token.type = Token.TokenType.STRINGPARAM;
{ if (pos == input.length() && expression != null)
token.type = Token.TokenType.STRINGPARAM; throw new ExpressionException(this.expression, token, "Program truncated");
if (expression != null)
throw new ExpressionException(this.expression, token, "Program truncated");
}
ch = input.charAt(pos); ch = input.charAt(pos);
while (ch != '\'') while (ch != '\'')
{ {
@@ -134,20 +131,18 @@ public class Tokenizer implements Iterator<Tokenizer.Token>
{ {
pos++; pos++;
linepos++; linepos++;
if (pos == input.length()) if (pos == input.length() && expression != null)
{ throw new ExpressionException(this.expression, token, "Program truncated");
token.type = Token.TokenType.STRINGPARAM;
if (expression != null)
throw new ExpressionException(this.expression, token, "Program truncated");
}
} }
token.append(input.charAt(pos++)); token.append(input.charAt(pos++));
linepos++; 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++; pos++;
linepos++; linepos++;
token.type = Token.TokenType.STRINGPARAM;
} }
else if (Character.isLetter(ch) || "_".indexOf(ch) >= 0) else if (Character.isLetter(ch) || "_".indexOf(ch) >= 0)
{ {
@@ -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) -> __on_player_rides(player, forward, strafe, jumping, sneaking) ->
( (
print(''); print('');
print('__on_player_rides(player, forward, strafe, jumping, sneaking)');
print('player rides a vehicle:'); print('player rides a vehicle:');
print(' - player: '+player); print(' - player: '+player);
print(' - forward/backward: '+forward); 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); l(item, count, nbt) = item_tuple || l('None', 0, null);
print(''); print('');
print('__on_player_uses_item(player, item_tuple, hand)');
print('player uses an item:'); print('player uses an item:');
print(' - player: '+player); print(' - player: '+player);
print(' - item:'); print(' - item:');
@@ -32,6 +46,7 @@ __on_player_uses_item(player, item_tuple, hand) ->
__on_player_clicks_block(player, block, face) -> __on_player_clicks_block(player, block, face) ->
( (
print(''); print('');
print('__on_player_clicks_block(player, block, face)');
print('player clicks a block:'); print('player clicks a block:');
print(' - player: '+player); print(' - player: '+player);
print(' - block: '+block+' at '+map(pos(block), str('%.2f',_))); 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); l(item, count, nbt) = item_tuple || l('None', 0, null);
print(''); print('');
print('__on_player_right_clicks_block(player, item_tuple, hand, block, face, hitvec) ');
print('block right clicked by player:'); print('block right clicked by player:');
print(' - player: '+player); print(' - player: '+player);
print(' - item: '+item); 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) -> __on_player_breaks_block(player, block) ->
( (
print(''); print('');
print('__on_player_breaks_block(player, block)');
print('player breaks block:'); print('player breaks block:');
print(' - player: '+player); print(' - player: '+player);
print(' - block: '+block+' at '+map(pos(block), str('%.2f',_))) 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) -> __on_player_interacts_with_entity(player, entity, hand) ->
( (
print(''); print('');
print('__on_player_interacts_with_entity(player, entity, hand)');
print('player interacts with entity:'); print('player interacts with entity:');
print(' - player: '+player); print(' - player: '+player);
print(' - entity: '+entity+' at '+map(pos(entity), str('%.2f',_))); 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) -> __on_player_attacks_entity(player, entity) ->
( (
print(''); print('');
print('__on_player_attacks_entity(player, entity)');
print('player attacks entity:'); print('player attacks entity:');
print(' - player: '+player); print(' - player: '+player);
print(' - entity: '+entity+' at '+map(pos(entity), str('%.2f',_))) 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) -> __on_player_releases_item(player, item_tuple, hand) ->
( (
l(item, count, nbt) = item_tuple || l('None', 0, null); l(item, count, nbt) = item_tuple || l('None', 0, null);
print(''); print('');
print('__on_player_releases_item(player, item_tuple, hand)');
print('player releases an item:'); print('player releases an item:');
print(' - player: '+player); print(' - player: '+player);
print(' - item:'); 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); l(item, count, nbt) = item_tuple || l('None', 0, null);
print(''); print('');
print('__on_player_finishes_using_item(player, item_tuple, hand)');
print('player finishes using an item:'); print('player finishes using an item:');
print(' - player: '+player); print(' - player: '+player);
print(' - item:'); print(' - item:');
@@ -111,6 +148,14 @@ __on_player_finishes_using_item(player, item_tuple, hand) ->
print(' - hand: '+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.'); __on_player_drops_stack(player) -> (
print('');
print('__on_player_drops_stack(player)');
print('Player '+player+' drops current stack.')
);