private boolean parseStart(){
        // There MUST be tokens left at the start
        
        int[] parsed = parsePrefix();
        if (parsed == null){
            // Error parsing
            return false;
        }
        
        NumberToken next = peek();
        if (next == null){
            // Units, can't parse any more
            units = parsed;
            return true;
        } else if (next.type == TokenType.MILLION){
            // Millions, parse again for thousands and below
            millions = parsed;
            consume();
            return parseAfterMillion();
        } else if (next.type == TokenType.THOUSAND){
            // Thousands, parse again for units
            thousands = parsed;
            consume();
            return parseAfterThousand();
        }
        
        em.error("Expected million, thousand, or end-of-file; got \"%s\"", next);
        return false;
    }