. ▁However , ▁a ▁common ▁restriction ▁is ▁not ▁to ▁permit ▁whitespace ▁characters ▁and ▁language ▁operators ; ▁this ▁simpl ifies ▁token ization ▁by ▁making ▁it ▁free - form ▁and ▁context - free . ▁For ▁example , ▁forb idd ing ▁+ ▁in ▁ident ifiers ▁due ▁to ▁its ▁use ▁as ▁a ▁binary ▁operation ▁means ▁that ▁a + b ▁and ▁a ▁+ ▁b ▁can ▁be ▁token ized ▁the ▁same , ▁while ▁if ▁it ▁were ▁allowed , ▁a + b ▁would ▁be ▁an ▁identifier , ▁not ▁an ▁addition . ▁Wh ites pace ▁in ▁identifier ▁is ▁particularly ▁problem atic , ▁as ▁if ▁spaces ▁are ▁allowed ▁in ▁ident ifiers , ▁then ▁a ▁clause ▁such ▁as ▁if ▁ra iny ▁day ▁then ▁ 1 ▁is ▁legal , ▁with ▁ra iny ▁day ▁as ▁an ▁identifier , ▁but ▁token izing ▁this ▁requires ▁the ▁phr as al ▁context ▁of ▁being ▁in ▁the ▁condition ▁of ▁an ▁if ▁clause . ▁Some ▁languages ▁do ▁allow ▁spaces ▁in ▁ident ifiers , ▁however , ▁such ▁as ▁AL G OL ▁ 6 8 ▁and ▁some ▁AL G OL ▁variants ▁– ▁for ▁example , ▁the ▁following ▁is ▁a ▁valid ▁statement : ▁real ▁half ▁pi ; ▁which ▁could ▁be ▁entered ▁as ▁. real . ▁half ▁pi ; ▁( key words ▁are ▁represented ▁in ▁bold face , ▁con cret ely ▁via ▁stro pping ). ▁In ▁AL G OL ▁this ▁was ▁possible ▁because ▁keywords ▁are ▁s ynt act ically ▁differenti ated , ▁so ▁there ▁is ▁no ▁risk ▁of ▁collision ▁or ▁ambigu ity , ▁spaces ▁are ▁elimin ated ▁during ▁the ▁line ▁reconst ruction ▁phase , ▁and