Scala 3 -language:postfixOps
, 940 bytes
This is a chonky lizard.
@main def m:Unit=
val s="""@main def m:Unit=
val s=Q%sQ
var x=()
def p=print("515")
class main extends annotation.Annotation{val dval=0;def d=printf(s.replace(""+81.toChar,(""+34.toChar)*3),s,s)}
return
new main()dval
x=p
@main def n=
val s=Q%sQ
printf(s.replace(""+81.toChar,(""+34.toChar)*3),s,s)
val p=0"""
var x=()
def p=print("515")
class main extends annotation.Annotation{val dval=0;def d=printf(s.replace(""+81.toChar,(""+34.toChar)*3),s,s)}
return
new main()dval
x=p
@main def n=
val s="""@main def m:Unit=
val s=Q%sQ
var x=()
def p=print("515")
class main extends annotation.Annotation{val dval=0;def d=printf(s.replace(""+81.toChar,(""+34.toChar)*3),s,s)}
return
new main()dval
x=p
@main def n=
val s=Q%sQ
printf(s.replace(""+81.toChar,(""+34.toChar)*3),s,s)
val p=0"""
printf(s.replace(""+81.toChar,(""+34.toChar)*3),s,s)
val p=0
x
is 515.
Try the last (n-x) bytes online!
I'm sure I've done something silly here and can make it smaller, but it's really hard editing quines and seeing what's wrong, so I'll try golfing it more later.
The entire thing (minimized):
@main def m:Unit=
val s="""..."""
var x=()
def p=print("515")
class main extends annotation.Annotation{val dval=0;def d=printf(s.replace(""+81.toChar,(""+34.toChar)*3),s,s)}
return
new main()dval //The split happens between 'd' and 'v' here
x=p
@main def n=
val s="""..."""
printf(s.replace(""+81.toChar,(""+34.toChar)*3),s,s)
val p=0
First x bytes (minimized):
@main def m:Unit=
val s="""..."""
var x=()
def p=print("515")
class main extends annotation.Annotation{val dval=0;def d=printf(s.replace(""+81.toChar,(""+34.toChar)*3),s,s)}
return
new main()d
Last (n-x) bytes (minimized):
val
x=p
@main def n=
val s="""..."""
printf(s.replace(""+81.toChar,(""+34.toChar)*3),s,s)
val p=0