about summary refs log tree commit diff
path: root/users/tazjin/presentations/tvix-eval-2023/cppnix-example-lexer.cpp
blob: 7c52bce8b6d2043c991674dd584859f959ad10ed (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
attrpath
  : attrpath '.' attr {
    $$ = $1; $1->push_back(AttrName(data->symbols.create($3)));
  }
  | attrpath '.' string_attr
    { $$ = $1;
      ExprString * str = dynamic_cast<ExprString *>($3);
      if (str) {
          $$->push_back(AttrName(data->symbols.create(str->s)));
          delete str;
      } else
          $$->push_back(AttrName($3));
    }