learning scanning and parsing