TranslationUnit[0:0->7:0]
  FunctionDeclaration[0:0->7:0]
    NamedType[0:0->0:4]
      int
    foo
    (
    )
    FunctionDefinition[1:0->7:0]
    {
      IfStatement[2:4->3:16]
        Predicate:
        NumericLiteral[2:8->2:8]
        2
        Then:
        ReturnStatement[3:8->3:16]
          NumericLiteral[3:15->3:15]
          2
      IfStatement[4:4->5:16]
        Predicate:
        BinaryExpression[4:8->4:12]
          NumericLiteral[4:8->4:8]
          1
          <
          NumericLiteral[4:12->4:12]
          2
        Then:
        ReturnStatement[5:8->5:16]
          NumericLiteral[5:15->5:15]
          1
      ReturnStatement[6:4->6:12]
        NumericLiteral[6:11->6:11]
        0
    }