/**
 * @fileoverview Debug parser step by step
 */

import { describe, expect, it } from 'vitest';
import { OrdoJSLexer } from './lexer.js';
import { OrdoJSParser } from './parser.js';

describe('Debug Parser', () => {
  it('should debug HTML element parsing', () => {
    const source = `
      component TestComponent {
        markup {
          <div>Hello World</div>
        }
      }
    `;

    const lexer = new OrdoJSLexer(source, 'test.ordo');
    const tokens = lexer.tokenize();

    console.log('All tokens:', tokens.tokens.map((t, i) => ({ index: i, type: t.type, value: t.value })));

    const parser = new OrdoJSParser(tokens, { allowRecovery: true }, 'test.ordo');

    try {
      const ast = parser.parse();
      console.log('Parsing succeeded');
    } catch (error) {
      console.log('Parsing failed:', error.message);
      console.log('Current token position:', tokens.current);
      console.log('Current token:', tokens.peek());
    }

    expect(true).toBe(true); // Just to make the test pass
  });
});
