Как стать автором
Обновить

Комментарии 9

На правах рекламы: я обладаю проектом, который развиваю некоторое время и решил участвовать с ним в imagine cup 2009. Так как мне интересна алгоритмическая часть и не интересует разработка GUI, то предлагаю питерским студентам присоединиться ко мне в команду. Вакантны два места в команде: дизайнер/верстальщик и специалист в технологии silverlight. Я надеюсь сорвать куш в Каире. Всех, кого заинтересовал прошу обращаться приватно.
Эмблема brainiac здесь в самый раз %)
НЛО прилетело и опубликовало эту надпись здесь
Когда увидел фичи Nemerle, тоже кинулся портировать Parsec. Правда, я использовал дополнительные операторы (<|>, >>>) и макросы (pdo), получилось ближе к оригиналу (куски из парсера SQL):

private p_query: P[Query] = p_select <|> p_update <|> p_delete <|> p_insert

private p_select: P[Query] = pdo
  p_reserved(«SELECT»)
  fields <- p_select_list

  p_reserved(«FROM»)
  tables <- p_tables

  condition <- p_optional(p_condition)
  group_by <- p_optional(p_grouping)
  having &lt- p_optional(p_having)
  order_by &lt- p_optional(p_ordering)

  p_return(Query.Select(fields, tables, condition, group_by, having, order_by))

private p_order: P[Order] = \
  p_reserved(«ASC») >>> p_return(Order.Asc) \
  <|> p_reserved(«DESC») >>> p_return(Order.Desc)

Я тоже хотел, через макросы реализовать do записи, но быстро в них пока не разобрался, поэтому использовал этот вариант.
Сорцы выложил, отписался.
А где выложил?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации