Skip to main content
We’ve updated our Terms of Service. A new AI Addendum clarifies how Stack Overflow utilizes AI interactions.
Code Golf

Return to Answer

Commonmark migration
Source Link

#Python 3, 1322 bytes

Python 3, 1322 bytes

#Python 3, 1322 bytes

Python 3, 1322 bytes

added 44 characters in body
Source Link
Zach Gates
  • 6.7k
  • 31
  • 75

Hence the sys.setrecursionlimit(2000).

Hence the sys.setrecursionlimit(2000).

added 32 characters in body
Source Link
Zach Gates
  • 6.7k
  • 31
  • 75

#Python 3, 12901322 bytes

import re;Fre,sys;sys.setrecursionlimit(2000);F,L=filter,list
class P:
 N,O,F=0,{},{}
 def __init__(S,c):
 S.B,S.E={"p":S.P,"i":S.I,"d":S.D,"a":S.L},dict(enumerate(F(None,[i.split('#')[0].rstrip()for i in c.splitlines()])))
 while S.N in S.E:S.X(S.E[S.N])
 def V(S, v, y, z=0):
 if re.match("[\w_][\d\w_]*",v):
 if not v in y:
 if z is not None:y[v]=z
 else:return False
 return True
 return False
 def A(S):S.N+=1
 def P(S,v):
 if S.V(v,S.O):print("{0} = {1}".format(v, S.O[v]));return True
 return False
 def I(S,v):
 if S.V(v, S.O):S.O[v]+=1;return True
 return False
 def D(S,v):
 if S.V(v,S.O)and S.O[v]>0:S.O[v]-=1;return True
 return False
 def L(S,v):
 e=[]
 if S.V(v,S.F,e):
 for i in range(3):S.A();e.append(S.E[S.N].lstrip())
 return True
 return False
 def C(S,c,v):
 def R(Z,v):
 for i in re.findall("\s(\d+)", Z):Z=Z.replace(" %s"%i," %s"%v[int(i)-1])
 return Z
 Q,m,f=map(lambda l:R(l,v),S.F[c])
 if S.X(Q,False):return S.X(m,False)
 return S.X(f,False)
 def X(S,Z,C=True):
 u=re.match("\s?([\w_][\d\w_]*)\s?([\w_][\d\w ]*)?",Z)
 if u:
 c,v=map(lambda i:''if i is None else i,u.groups());v=L(F(None,v.split(' ')))
 if S.V(c,S.F,None):
 T=S.C(c, v)
 if C:S.A()
 elif S.V(c,S.B,None):
 T=S.B[c](*v)
 if C:S.A()
 else:return False
 return T
 return False

#Python 3, 1290 bytes

import re;F,L=filter,list
class P:
 N,O,F=0,{},{}
 def __init__(S,c):
 S.B,S.E={"p":S.P,"i":S.I,"d":S.D,"a":S.L},dict(enumerate(F(None,[i.split('#')[0].rstrip()for i in c.splitlines()])))
 while S.N in S.E:S.X(S.E[S.N])
 def V(S, v, y, z=0):
 if re.match("[\w_][\d\w_]*",v):
 if not v in y:
 if z is not None:y[v]=z
 else:return False
 return True
 return False
 def A(S):S.N+=1
 def P(S,v):
 if S.V(v,S.O):print("{0} = {1}".format(v, S.O[v]));return True
 return False
 def I(S,v):
 if S.V(v, S.O):S.O[v]+=1;return True
 return False
 def D(S,v):
 if S.V(v,S.O)and S.O[v]>0:S.O[v]-=1;return True
 return False
 def L(S,v):
 e=[]
 if S.V(v,S.F,e):
 for i in range(3):S.A();e.append(S.E[S.N].lstrip())
 return True
 return False
 def C(S,c,v):
 def R(Z,v):
 for i in re.findall("\s(\d+)", Z):Z=Z.replace(" %s"%i," %s"%v[int(i)-1])
 return Z
 Q,m,f=map(lambda l:R(l,v),S.F[c])
 if S.X(Q,False):return S.X(m,False)
 return S.X(f,False)
 def X(S,Z,C=True):
 u=re.match("\s?([\w_][\d\w_]*)\s?([\w_][\d\w ]*)?",Z)
 if u:
 c,v=map(lambda i:''if i is None else i,u.groups());v=L(F(None,v.split(' ')))
 if S.V(c,S.F,None):
 T=S.C(c, v)
 if C:S.A()
 elif S.V(c,S.B,None):
 T=S.B[c](*v)
 if C:S.A()
 else:return False
 return T
 return False

#Python 3, 1322 bytes

import re,sys;sys.setrecursionlimit(2000);F,L=filter,list
class P:
 N,O,F=0,{},{}
 def __init__(S,c):
 S.B,S.E={"p":S.P,"i":S.I,"d":S.D,"a":S.L},dict(enumerate(F(None,[i.split('#')[0].rstrip()for i in c.splitlines()])))
 while S.N in S.E:S.X(S.E[S.N])
 def V(S, v, y, z=0):
 if re.match("[\w_][\d\w_]*",v):
 if not v in y:
 if z is not None:y[v]=z
 else:return False
 return True
 return False
 def A(S):S.N+=1
 def P(S,v):
 if S.V(v,S.O):print("{0} = {1}".format(v, S.O[v]));return True
 return False
 def I(S,v):
 if S.V(v, S.O):S.O[v]+=1;return True
 return False
 def D(S,v):
 if S.V(v,S.O)and S.O[v]>0:S.O[v]-=1;return True
 return False
 def L(S,v):
 e=[]
 if S.V(v,S.F,e):
 for i in range(3):S.A();e.append(S.E[S.N].lstrip())
 return True
 return False
 def C(S,c,v):
 def R(Z,v):
 for i in re.findall("\s(\d+)", Z):Z=Z.replace(" %s"%i," %s"%v[int(i)-1])
 return Z
 Q,m,f=map(lambda l:R(l,v),S.F[c])
 if S.X(Q,False):return S.X(m,False)
 return S.X(f,False)
 def X(S,Z,C=True):
 u=re.match("\s?([\w_][\d\w_]*)\s?([\w_][\d\w ]*)?",Z)
 if u:
 c,v=map(lambda i:''if i is None else i,u.groups());v=L(F(None,v.split(' ')))
 if S.V(c,S.F,None):
 T=S.C(c, v)
 if C:S.A()
 elif S.V(c,S.B,None):
 T=S.B[c](*v)
 if C:S.A()
 else:return False
 return T
 return False
Source Link
Zach Gates
  • 6.7k
  • 31
  • 75
Loading

AltStyle によって変換されたページ (->オリジナル) /