Skip to content

Instantly share code, notes, and snippets.

@JAChapmanII
Created December 22, 2012 20:53
Show Gist options
  • Save JAChapmanII/4361017 to your computer and use it in GitHub Desktop.
Save JAChapmanII/4361017 to your computer and use it in GitHub Desktop.
pbrane's AST: a -syntax- christmas tree
jac@Ratushnyak ~/p/p/src (future)> g++ -std=c++0x evaluation.cpp -I../lib ../obj/util.o -g -o eval; and segfind ./eval "!ho (ho * (ho + ho)) (Merry * Christmas) * (Merry * Christmas) + (MerryChristmas * MerryChristmas) * (HoHoHoHappyHolidays * HoHoHoHappyHolidays) xx"
1: !ho (ho * (ho + ho)) (Merry * Christmas) * (Merry * Christmas) + (MerryChristmas * MerryChristmas) * (HoHoHoHappyHolidays * HoHoHoHappyHolidays) xx
; ! ho ( ; ho * ( ; ho + ho ; ) ; ) ( ; Merry * Christmas ; ) * ( ; Merry * Christmas ; ) + ( ; MerryChristmas * MerryChristmas ; ) * ( ; HoHoHoHappyHolidays * HoHoHoHappyHolidays ; ) xx ;
^~~~~~~~~~^
; ! ho ( ; ho * ( ; ho + ho ; ) ; ) ( ; Merry * Christmas ; ) * ( ; Merry * Christmas ; ) + ( ; MerryChristmas * MerryChristmas ; ) * ( ; HoHoHoHappyHolidays * HoHoHoHappyHolidays ; ) xx ;
^~~~~~~~~~~~~~^
; ! ho ( ; ho * ( ; ho + ho ; ) ; ) ( ; Merry * Christmas ; ) * ( ; Merry * Christmas ; ) + ( ; MerryChristmas * MerryChristmas ; ) * ( ; HoHoHoHappyHolidays * HoHoHoHappyHolidays ; ) xx ;
^~~~~~~~~~~~~~~~~~~~~~~^
; ! ho ( ; ho * ( ; ho + ho ; ) ; ) ( ; Merry * Christmas ; ) * ( ; Merry * Christmas ; ) + ( ; MerryChristmas * MerryChristmas ; ) * ( ; HoHoHoHappyHolidays * HoHoHoHappyHolidays ; ) xx ;
^~~~~~~~~~~~~~~~~~~~~~~~~~~^
; ! ho ( ; ho * ( ; ho + ho ; ) ; ) ( ; Merry * Christmas ; ) * ( ; Merry * Christmas ; ) + ( ; MerryChristmas * MerryChristmas ; ) * ( ; HoHoHoHappyHolidays * HoHoHoHappyHolidays ; ) xx ;
^~~~~~~~~~~~~~~~~~~~^
; ! ho ( ; ho * ( ; ho + ho ; ) ; ) ( ; Merry * Christmas ; ) * ( ; Merry * Christmas ; ) + ( ; MerryChristmas * MerryChristmas ; ) * ( ; HoHoHoHappyHolidays * HoHoHoHappyHolidays ; ) xx ;
^~~~~~~~~~~~~~~~~~~~~~~~^
; ! ho ( ; ho * ( ; ho + ho ; ) ; ) ( ; Merry * Christmas ; ) * ( ; Merry * Christmas ; ) + ( ; MerryChristmas * MerryChristmas ; ) * ( ; HoHoHoHappyHolidays * HoHoHoHappyHolidays ; ) xx ;
^~~~~~~~~~~~~~~~~~~~^
; ! ho ( ; ho * ( ; ho + ho ; ) ; ) ( ; Merry * Christmas ; ) * ( ; Merry * Christmas ; ) + ( ; MerryChristmas * MerryChristmas ; ) * ( ; HoHoHoHappyHolidays * HoHoHoHappyHolidays ; ) xx ;
^~~~~~~~~~~~~~~~~~~~~~~~^
; ! ho ( ; ho * ( ; ho + ho ; ) ; ) ( ; Merry * Christmas ; ) * ( ; Merry * Christmas ; ) + ( ; MerryChristmas * MerryChristmas ; ) * ( ; HoHoHoHappyHolidays * HoHoHoHappyHolidays ; ) xx ;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
; ! ho ( ; ho * ( ; ho + ho ; ) ; ) ( ; Merry * Christmas ; ) * ( ; Merry * Christmas ; ) + ( ; MerryChristmas * MerryChristmas ; ) * ( ; HoHoHoHappyHolidays * HoHoHoHappyHolidays ; ) xx ;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
; ! ho ( ; ho * ( ; ho + ho ; ) ; ) ( ; Merry * Christmas ; ) * ( ; Merry * Christmas ; ) + ( ; MerryChristmas * MerryChristmas ; ) * ( ; HoHoHoHappyHolidays * HoHoHoHappyHolidays ; ) xx ;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
; ! ho ( ; ho * ( ; ho + ho ; ) ; ) ( ; Merry * Christmas ; ) * ( ; Merry * Christmas ; ) + ( ; MerryChristmas * MerryChristmas ; ) * ( ; HoHoHoHappyHolidays * HoHoHoHappyHolidays ; ) xx ;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
; ! ho ( ; ho * ( ; ho + ho ; ) ; ) ( ; Merry * Christmas ; ) * ( ; Merry * Christmas ; ) + ( ; MerryChristmas * MerryChristmas ; ) * ( ; HoHoHoHappyHolidays * HoHoHoHappyHolidays ; ) xx ;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
final:
!
name: ho
a: *
l: ho
r: +
l: ho
r: ho
a: +
l: *
l: *
l: Merry
r: Christmas
r: *
l: Merry
r: Christmas
r: *
l: *
l: MerryChristmas
r: MerryChristmas
r: *
l: HoHoHoHappyHolidays
r: HoHoHoHappyHolidays
arg: xx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment