src/main/java/me/senseiwells/arucas/core/Parser.java
private boolean isUnpackable() throws CodeError {
		int position = this.operatorTokenIndex;
		this.parseStack.add(StackType.UNPACKING);
		do {
			Node node = this.expression();

			if (!(node instanceof VariableAssignNode)) {
				this.parseStack.pop();
				this.setTokenIndex(position);
				return false;
			}
		}
		while (this.currentToken.type == Token.Type.COMMA && this.advance());
		this.parseStack.pop();

		boolean isPackable = this.currentToken.type == Token.Type.ASSIGN_OPERATOR;
		this.setTokenIndex(position);

		return isPackable;
	}
// Checks whether the following code is unpacking code
Checks whether the following code is unpacking code
Checks whether the following code is unpacking code
private boolean isUnpackable() throws CodeError {
		int position = this.operatorTokenIndex;
		this.parseStack.add(StackType.UNPACKING);
		do {
			Node node = this.expression();
			if (!(node instanceof VariableAssignNode)) {
				this.parseStack.pop();
				this.setTokenIndex(position);
				return false;
			}
		}
		while (this.currentToken.type == Token.Type.COMMA && this.advance());
		this.parseStack.pop();
		boolean isPackable = this.currentToken.type == Token.Type.ASSIGN_OPERATOR;
		this.setTokenIndex(position);
		return isPackable;
	}
private boolean isUnpackable ( ) throws CodeError { int position = this . operatorTokenIndex ; this . parseStack . add ( StackType . UNPACKING ) ; do { Node node = this . expression ( ) ; if ( ! ( node instanceof VariableAssignNode ) ) { this . parseStack . pop ( ) ; this . setTokenIndex ( position ) ; return false ; } } while ( this . currentToken . type == Token . Type . COMMA && this . advance ( ) ) ; this . parseStack . pop ( ) ; boolean isPackable = this . currentToken . type == Token . Type . ASSIGN_OPERATOR ; this . setTokenIndex ( position ) ; return isPackable ; }
Checks whether the following code is unpacking code
Checks whether the following code is unpacking code